diff --git a/NEWS b/NEWS index c95ebcc..42d80db 100644 --- 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 --- 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. diff --git a/polarssl/include/polarssl/bn_mul.h b/polarssl/include/polarssl/bn_mul.h index dfb7a9b..135ce0d 100644 --- a/polarssl/include/polarssl/bn_mul.h +++ b/polarssl/include/polarssl/bn_mul.h @@ -499,17 +499,17 @@ "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 \ @@ -519,17 +519,17 @@ "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 \ @@ -539,13 +539,13 @@ "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" \ @@ -553,7 +553,7 @@ "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 \ diff --git a/polarssl/library/bignum.c b/polarssl/library/bignum.c index ea5b828..994b6da 100644 --- a/polarssl/library/bignum.c +++ b/polarssl/library/bignum.c @@ -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" diff --git a/tool/upgrade_by_passwd.py b/tool/upgrade_by_passwd.py index c1834ce..0598f98 100755 --- a/tool/upgrade_by_passwd.py +++ b/tool/upgrade_by_passwd.py @@ -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)