improve a bit
authorNIIBE Yutaka <gniibe@fsij.org>
Tue, 24 Dec 2013 05:25:39 +0000 (14:25 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Tue, 24 Dec 2013 06:21:07 +0000 (15:21 +0900)
NEWS
README
polarssl/include/polarssl/bn_mul.h
polarssl/library/bignum.c
tool/upgrade_by_passwd.py

diff --git a/NEWS b/NEWS
index c95ebcc..42d80db 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,14 @@
 Gnuk NEWS - User visible changes
 
+* Major changes in Gnuk 1.1.1
+
+  Released 2013-12-25, by NIIBE Yutaka
+
+** Improved RSA routine
+Working memory for RSA computation is taken from stack (mostly),
+instead of malloc.
+
+
 * Major changes in Gnuk 1.1.0
 
   Released 2013-12-20, by NIIBE Yutaka
diff --git a/README b/README
index c6af8c0..f0f2de0 100644 (file)
--- a/README
+++ b/README
@@ -1,18 +1,18 @@
 Gnuk - An Implementation of USB Cryptographic Token for GnuPG
 
-                                                         Version 1.1.0
-                                                            2013-12-20
+                                                         Version 1.1.1
+                                                            2013-12-25
                                                           Niibe Yutaka
                                      Free Software Initiative of Japan
 
 Warning
 =======
 
-This is an experimental release of Gnuk 1.1.0, which has incompatible
-changes to Gnuk 1.0.x.  Specifically, it now supports overriding key
-import, but importing keys (or generating keys) results password
-reset.  Please update your documentation for Gnuk Token, so that the
-instruction of importing keys won't cause any confusion.
+This is another experimental release of Gnuk 1.1.1, which has
+incompatible changes to Gnuk 1.0.x.  Specifically, it now supports
+overriding key import, but importing keys (or generating keys) results
+password reset.  Please update your documentation for Gnuk Token, so
+that the instruction of importing keys won't cause any confusion.
 
 
 What's Gnuk?
@@ -122,9 +122,9 @@ Ac: ST-Link/V2 is cheap one.  We have a tool/stlinkv2.py as flash ROM
 Release notes
 =============
 
-This is an experimental release in version 1.1 series of Gnuk.
+This is another experimental release in version 1.1 series of Gnuk.
 
-While it is daily use for a year and a half, some newly introduced
+While it is daily use for more than two years, some newly introduced
 features (including key generation and firmware upgrade) should be
 considered experimental.
 
index dfb7a9b..135ce0d 100644 (file)
        "ldmia  %0!, { r8, r9, r10 } \n\t"        \
        "ldmia  %1, { r5, r6, r7 }   \n\t"        \
        "adcs   r5, r5, %2           \n\t"        \
-       "umull  r11, r12, r8, %4     \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r5, r5, r11          \n\t"        \
+       "umull  r4, r11, r8, %4     \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r5, r5, r4          \n\t"        \
        "adcs   r6, r6, %2           \n\t"        \
-       "umull  r11, r12, r9, %4     \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r6, r6, r11          \n\t"        \
+       "umull  r4, r11, r9, %4     \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r6, r6, r4          \n\t"        \
        "adcs   r7, r7, %2           \n\t"        \
-       "umull  r11, r12, r10, %4    \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r7, r7, r11          \n\t"        \
+       "umull  r4, r11, r10, %4    \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r7, r7, r4          \n\t"        \
        "stmia  %1!, { r5, r6, r7 }  \n\t"
 
 #define MULADDC_1024_LOOP                        \
        "ldmia  %0!, { r8, r9, r10 } \n\t"        \
        "ldmia  %1, { r5, r6, r7 }   \n\t"        \
        "adds   r5, r5, %2           \n\t"        \
-       "umull  r11, r12, %4, r8     \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r5, r5, r11          \n\t"        \
+       "umull  r4, r11, %4, r8     \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r5, r5, r4          \n\t"        \
        "adcs   r6, r6, %2           \n\t"        \
-       "umull  r11, r12, %4, r9     \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r6, r6, r11          \n\t"        \
+       "umull  r4, r11, %4, r9     \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r6, r6, r4          \n\t"        \
        "adcs   r7, r7, %2           \n\t"        \
-       "umull  r11, r12, %4, r10    \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r7, r7, r11          \n\t"        \
+       "umull  r4, r11, %4, r10    \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r7, r7, r4          \n\t"        \
        "stmia  %1!, { r5, r6, r7 }  \n\t"        \
        MULADDC_1024_CORE MULADDC_1024_CORE       \
        MULADDC_1024_CORE MULADDC_1024_CORE       \
        "ldmia  %0!, { r8, r9 }      \n\t"        \
        "ldmia  %1, { r5, r6 }       \n\t"        \
        "adcs   r5, r5, %2           \n\t"        \
-       "umull  r11, r12, %4, r8     \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r5, r5, r11          \n\t"        \
+       "umull  r4, r11, %4, r8     \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r5, r5, r4          \n\t"        \
        "adcs   r6, r6, %2           \n\t"        \
-       "umull  r11, r12, %4, r9     \n\t"        \
-       "adc    %2, r12, #0          \n\t"        \
-       "adds   r6, r6, r11          \n\t"        \
+       "umull  r4, r11, %4, r9     \n\t"        \
+       "adc    %2, r11, #0          \n\t"        \
+       "adds   r6, r6, r4          \n\t"        \
        "stmia  %1!, { r5, r6 }      \n\t"        \
        "adc    %2, %2, #0           \n\t"        \
        "tst    %3, #0xfe0           \n\t"        \
 "0:"                                             \
        : "=r" (s), "=r" (d), "=r" (c), "=r" (i)       \
        : "r" (b), "0" (s), "1" (d), "2" (c), "3" (i)  \
-       : "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "memory", "cc" );
+       : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "memory", "cc" );
 
 /* Just for reference (dead code) */
 #define MULADDC_HUIT                                   \
index ea5b828..994b6da 100644 (file)
@@ -1471,8 +1471,8 @@ static void mpi_montsqr( size_t n, const t_uint *np, t_uint mm, t_uint *d )
            "umull  r6, r11, %[x_i], %[x_i]\n\t"
            "adds   r5, r5, r6\n\t"
            "adc    r4, r8, r11\n\t"
-           "cmp    %[xj], %[x_max1]\n\t"
            "str    r5, [%[wij]], #4\n\t"
+           "cmp    %[xj], %[x_max1]\n\t"
            "beq    1f\n\t"
            "bhi    0f\n"
    "2:\n\t"
@@ -1499,14 +1499,14 @@ static void mpi_montsqr( size_t n, const t_uint *np, t_uint mm, t_uint *d )
            "adcs   r4, r4, r11\n\t"
            "adc    %[c], %[c], r8\n\t"
            /**/
-           "cmp    %[xj], %[x_max1]\n\t"
            "stmia  %[wij]!, { r5, r7 }\n\t"
+           "cmp    %[xj], %[x_max1]\n\t"
            "bcc    2b\n\t"
            "bne    0f\n"
    "1:\n\t"
            /* (C,R4,R5) := (C,R4) + w_i_j + 2*x_i*x_j; */
-           "ldr    r7, [%[xj]], #4\n\t"
            "ldr    r5, [%[wij]]\n\t"
+           "ldr    r7, [%[xj]], #4\n\t"
            "adds   r5, r5, r4\n\t"
            "adc    r4, %[c], r8\n\t"
            "umull  r6, r11, %[x_i], r7\n\t"
index c1834ce..0598f98 100755 (executable)
@@ -94,7 +94,6 @@ if __name__ == '__main__':
 
     passwd = DEFAULT_PW3
     keyno = 0
-    print sys.argv
     while len(sys.argv) > 3:
         option = sys.argv[1]
         sys.argv.pop(1)