From 55d745af4f3021221f19e994140c06a288b87fe8 Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Fri, 26 Sep 2003 01:16:18 +0000 Subject: [PATCH] added libtomcrypt-0.91 --- changes | 9 + crypt.pdf | Bin 411035 -> 411256 bytes crypt.tex | 2 +- demos/hashsum.c | 4 +- demos/test.c | 1 + demos/x86_prof.c | 41 +-- hash.c | 10 +- hmac.c | 13 +- makefile | 2 +- makefile.msvc | 3 + mpi.c | 645 ++++++++++++++++++++++++----------------------- mycrypt.h | 5 +- mycrypt_custom.h | 1 + strings.c | 4 +- 14 files changed, 386 insertions(+), 354 deletions(-) diff --git a/changes b/changes index 93ea898..002e897 100644 --- a/changes +++ b/changes @@ -1,3 +1,12 @@ +Sept 25th, 2003 +v0.91 -- HMAC fix of 0.90 was incorrect for keys larger than the block size of the hash. + -- Added error CRYPT_FILE_NOTFOUND for the file [hmac/hash] routines. + -- Added RIPEMD hashes to the hashsum demo. + -- Added hashsum demo to MSVC makefile. + -- Added RMD160 to the x86_prof demo [oops] + -- Merged in LibTomMath-0.27 with a patch to mp_shrink() that will be in LibTomMath-0.28 + Fixes another potential memory leak. + Sept 7th, 2003 v0.90 -- new ROL/ROR for x86 GCC -- Jochen Katz submitted a patch to the makefile to prevent "make" from making the .a library diff --git a/crypt.pdf b/crypt.pdf index bd4e895662977441575822f9c30d6710fac82a58..8784eaeaea94c5ff60df64f1ada91c09c53794b8 100644 GIT binary patch delta 113148 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⪼5-+NUM<$5XL^B$ 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

hUlH_cDZn+u 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 diff --git a/crypt.tex b/crypt.tex index 748e811..71f123c 100644 --- a/crypt.tex +++ b/crypt.tex @@ -47,7 +47,7 @@ \def\gap{\vspace{0.5ex}} \makeindex \begin{document} -\title{A Tiny Crypto Library, \\ LibTomCrypt \\ Version 0.90} +\title{A Tiny Crypto Library, \\ LibTomCrypt \\ Version 0.91} \author{Tom St Denis \\ Algonquin College \\ \\ diff --git a/demos/hashsum.c b/demos/hashsum.c index b0606bd..640ffac 100644 --- a/demos/hashsum.c +++ b/demos/hashsum.c @@ -64,7 +64,7 @@ int main(int argc, char **argv) return EXIT_SUCCESS; } -void register_algs(void) +void register_algs(void) { register_hash(&sha512_desc); register_hash(&sha384_desc); @@ -74,4 +74,6 @@ void register_algs(void) register_hash(&md4_desc); register_hash(&tiger_desc); register_hash(&md2_desc); + register_hash(&rmd128_desc); + register_hash(&rmd160_desc); } diff --git a/demos/test.c b/demos/test.c index 81d3472..6b6bb44 100644 --- a/demos/test.c +++ b/demos/test.c @@ -1700,6 +1700,7 @@ test_errs (void) ERR (CRYPT_PK_NOT_PRIVATE); ERR (CRYPT_INVALID_ARG); + ERR (CRYPT_FILE_NOTFOUND); ERR (CRYPT_PK_INVALID_TYPE); ERR (CRYPT_PK_INVALID_SYSTEM); diff --git a/demos/x86_prof.c b/demos/x86_prof.c index df2e007..a555a2b 100644 --- a/demos/x86_prof.c +++ b/demos/x86_prof.c @@ -50,20 +50,20 @@ void init_timer(void) { ulong64 c1, c2, t1, t2, t3; unsigned long y1; - + c1 = c2 = (ulong64)-1; for (y1 = 0; y1 < TIMES*100; y1++) { t_start(); t1 = t_read(); t3 = t_read(); t2 = t_read() - t1; - + c1 = (c1 > t1) ? t1 : c1; c2 = (c2 > t2) ? t2 : c2; } skew = c2 - c1; printf("Clock Skew: %lu\n", (unsigned long)skew); -} +} void reg_algs(void) { @@ -135,6 +135,9 @@ void reg_algs(void) #ifdef RIPEMD128 register_hash (&rmd128_desc); #endif +#ifdef RIPEMD160 + register_hash (&rmd160_desc); +#endif } @@ -166,7 +169,7 @@ int time_keysched(void) #undef DO1 } - + return 0; } @@ -196,13 +199,13 @@ int time_cipher(void) DO2; t2 = t_read(); t2 -= t1; - + c1 = (t1 > c1 ? c1 : t1); c2 = (t2 > c2 ? c2 : t2); } a1 = c2 - c1 - skew; - - + + func = cipher_descriptor[x].ecb_decrypt; c1 = c2 = (ulong64)-1; for (y1 = 0; y1 < TIMES; y1++) { @@ -212,19 +215,19 @@ int time_cipher(void) DO2; t2 = t_read(); t2 -= t1; - + c1 = (t1 > c1 ? c1 : t1); c2 = (t2 > c2 ? c2 : t2); } a2 = c2 - c1 - skew; - + printf ("%-20s: Encrypt at %7.3f, Decrypt at %7.3f\n", cipher_descriptor[x].name, a1/(double)cipher_descriptor[x].block_length, a2/(double)cipher_descriptor[x].block_length); #undef DO2 #undef DO1 } - + return 0; } @@ -236,7 +239,7 @@ int time_hash(void) void (*func)(hash_state *, const unsigned char *, unsigned long); unsigned char pt[MAXBLOCKSIZE]; - + printf ("\n\nHASH Time Trials for:\n"); for (x = 0; hash_descriptor[x].name != NULL; x++) { hash_descriptor[x].init(&md); @@ -246,7 +249,7 @@ int time_hash(void) func = hash_descriptor[x].process; len = hash_descriptor[x].blocksize; - + c1 = c2 = (ulong64)-1; for (y1 = 0; y1 < TIMES; y1++) { t_start(); @@ -257,16 +260,16 @@ int time_hash(void) c1 = (t1 > c1) ? c1 : t1; c2 = (t2 > c2) ? c2 : t2; } - t1 = c2 - c1 - skew; + t1 = c2 - c1 - skew; t1 = ((t1 * CONST64(1000))) / ((ulong64)hash_descriptor[x].blocksize); - + printf ("%-20s: Process at %9.3f\n", hash_descriptor[x].name, t1 / 1000.0); #undef DO2 #undef DO1 } - + return 0; } @@ -275,12 +278,12 @@ int main(void) reg_algs(); printf("Timings for ciphers and hashes. Times are listed as cycles per byte processed.\n\n"); - + // init_timer(); time_cipher(); time_keysched(); time_hash(); - - return EXIT_SUCCESS; -} + + return EXIT_SUCCESS; +} diff --git a/hash.c b/hash.c index 0665ac9..e42c4fa 100644 --- a/hash.c +++ b/hash.c @@ -78,16 +78,12 @@ int hash_file(int hash, const char *fname, unsigned char *dst, unsigned long *ou in = fopen(fname, "rb"); if (in == NULL) { - return CRYPT_INVALID_ARG; + return CRYPT_FILE_NOTFOUND; } - if ((err = hash_filehandle(hash, in, dst, outlen)) != CRYPT_OK) { - (void)fclose(in); - return err; - } + err = hash_filehandle(hash, in, dst, outlen); (void)fclose(in); - - return CRYPT_OK; + return err; #endif } diff --git a/hmac.c b/hmac.c index 4edbf8f..ea98d9a 100644 --- a/hmac.c +++ b/hmac.c @@ -38,7 +38,7 @@ int hmac_init(hmac_state *hmac, int hash, const unsigned char *key, unsigned lon } /* valid key length? */ - if (keylen == 0 || keylen > MAXBLOCKSIZE) { + if (keylen == 0) { return CRYPT_INVALID_KEYSIZE; } @@ -54,6 +54,7 @@ int hmac_init(hmac_state *hmac, int hash, const unsigned char *key, unsigned lon if(hashsize < HMAC_BLOCKSIZE) { zeromem((hmac->key) + hashsize, (size_t)(HMAC_BLOCKSIZE - hashsize)); } + keylen = hashsize; } else { memcpy(hmac->key, key, (size_t)keylen); if(keylen < HMAC_BLOCKSIZE) { @@ -62,14 +63,10 @@ int hmac_init(hmac_state *hmac, int hash, const unsigned char *key, unsigned lon } // Create the initial vector for step (3) - for(i=0; i < keylen; i++) { + for(i=0; i < HMAC_BLOCKSIZE; i++) { buf[i] = hmac->key[i] ^ 0x36; } - for( ; i < HMAC_BLOCKSIZE; i++) { - buf[i] = 0x36; - } - // Pre-pend that to the hash data hash_descriptor[hash].init(&hmac->md); hash_descriptor[hash].process(&hmac->md, buf, HMAC_BLOCKSIZE); @@ -126,6 +123,8 @@ int hmac_done(hmac_state *hmac, unsigned char *hashOut, unsigned long *outlen) hash_descriptor[hash].done(&hmac->md, hashOut); #ifdef CLEAN_STACK + zeromem(isha, sizeof(buf)); + zeromem(buf, sizeof(isha)); zeromem(hmac->key, sizeof(hmac->key)); #endif return CRYPT_OK; @@ -188,7 +187,7 @@ int hmac_file(int hash, const char *fname, const unsigned char *key, in = fopen(fname, "rb"); if (in == NULL) { - return CRYPT_INVALID_ARG; + return CRYPT_FILE_NOTFOUND; } /* process the file contents */ diff --git a/makefile b/makefile index dde9b93..3856a08 100644 --- a/makefile +++ b/makefile @@ -9,7 +9,7 @@ # a build. This is easy to remedy though, for those that have problems. # The version -VERSION=0.90 +VERSION=0.91 #ch1-01-1 # Compiler and Linker Names diff --git a/makefile.msvc b/makefile.msvc index 3310ee7..e9aa51d 100644 --- a/makefile.msvc +++ b/makefile.msvc @@ -26,3 +26,6 @@ x86_prof: demos/x86_prof.c library tv_gen: demos/tv_gen.c library cl $(CFLAGS) demos/tv_gen.c tomcrypt.lib advapi32.lib + +hashsum: demos/hashsum.c library + cl $(CFLAGS) demos/hashsum.c tomcrypt.lib advapi32.lib \ No newline at end of file diff --git a/mpi.c b/mpi.c index 3c139c9..ec95104 100644 --- a/mpi.c +++ b/mpi.c @@ -14,7 +14,7 @@ * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */ #include "mycrypt.h" -#include +#include "tommath.h" static const struct { int code; @@ -61,10 +61,10 @@ char *mp_error_to_string(int code) */ #include -/* computes the modular inverse via binary extended euclidean algorithm, - * that is c = 1/a mod b +/* computes the modular inverse via binary extended euclidean algorithm, + * that is c = 1/a mod b * - * Based on mp_invmod except this is optimized for the case where b is + * Based on mp_invmod except this is optimized for the case where b is * odd as per HAC Note 14.64 on pp. 610 */ int @@ -211,11 +211,11 @@ __ERR:mp_clear_multi (&x, &y, &u, &v, &B, &D, NULL); */ #include -/* computes xR**-1 == x (mod N) via Montgomery Reduction - * - * This is an optimized implementation of mp_montgomery_reduce +/* computes xR**-1 == x (mod N) via Montgomery Reduction + * + * This is an optimized implementation of mp_montgomery_reduce * which uses the comba method to quickly calculate the columns of the - * reduction. + * reduction. * * Based on Algorithm 14.32 on pp.601 of HAC. */ @@ -266,7 +266,7 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* mu = ai * m' mod b * * We avoid a double precision multiplication (which isn't required) - * by casting the value down to a mp_digit. Note this requires + * by casting the value down to a mp_digit. Note this requires * that W[ix-1] have the carry cleared (see after the inner loop) */ register mp_digit mu; @@ -278,12 +278,12 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * by b**i is handled by offseting which columns the results * are added to. * - * Note the comba method normally doesn't handle carries in the - * inner loop In this case we fix the carry from the previous - * column since the Montgomery reduction requires digits of the + * Note the comba method normally doesn't handle carries in the + * inner loop In this case we fix the carry from the previous + * column since the Montgomery reduction requires digits of the * result (so far) [see above] to work. This is - * handled by fixing up one carry after the inner loop. The - * carry fixups are done in order so after these loops the + * handled by fixing up one carry after the inner loop. The + * carry fixups are done in order so after these loops the * first m->used words of W[] have the carries fixed */ { @@ -329,8 +329,8 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* copy out, A = A/b**n * - * The result is A/b**n but instead of converting from an - * array of mp_word to mp_digit than calling mp_rshd + * The result is A/b**n but instead of converting from an + * array of mp_word to mp_digit than calling mp_rshd * we just copy them in the right order */ @@ -384,15 +384,15 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* Fast (comba) multiplier * - * This is the fast column-array [comba] multiplier. It is - * designed to compute the columns of the product first - * then handle the carries afterwards. This has the effect + * This is the fast column-array [comba] multiplier. It is + * designed to compute the columns of the product first + * then handle the carries afterwards. This has the effect * of making the nested loops that compute the columns very * simple and schedulable on super-scalar processors. * - * This has been modified to produce a variable number of - * digits of output so if say only a half-product is required - * you don't have to compute the upper half (a feature + * This has been modified to produce a variable number of + * digits of output so if say only a half-product is required + * you don't have to compute the upper half (a feature * required for fast Barrett reduction). * * Based on Algorithm 14.12 on pp.595 of HAC. @@ -417,8 +417,8 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* calculate the columns */ pa = a->used; for (ix = 0; ix < pa; ix++) { - /* this multiplier has been modified to allow you to - * control how many digits of output are produced. + /* this multiplier has been modified to allow you to + * control how many digits of output are produced. * So at most we want to make upto "digs" digits of output. * * this adds products to distinct columns (at ix+iy) of W @@ -466,11 +466,11 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) * correct result we must take the extra bits from each column and * carry them down * - * Note that while this adds extra code to the multiplier it - * saves time since the carry propagation is removed from the - * above nested loop.This has the effect of reducing the work - * from N*(N+N*c)==N**2 + c*N**2 to N**2 + N*c where c is the - * cost of the shifting. On very small numbers this is slower + * Note that while this adds extra code to the multiplier it + * saves time since the carry propagation is removed from the + * above nested loop.This has the effect of reducing the work + * from N*(N+N*c)==N**2 + c*N**2 to N**2 + N*c where c is the + * cost of the shifting. On very small numbers this is slower * but on most cryptographic size numbers it is faster. * * In this particular implementation we feed the carries from @@ -557,12 +557,12 @@ fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* alias for right side */ tmpy = b->dp + iy; - - /* alias for the columns of output. Offset to be equal to or above the - * smallest digit place requested + + /* alias for the columns of output. Offset to be equal to or above the + * smallest digit place requested */ - _W = W + digs; - + _W = W + digs; + /* skip cases below zero where ix > digs */ if (iy < 0) { iy = abs(iy); @@ -620,16 +620,16 @@ fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* fast squaring * - * This is the comba method where the columns of the product - * are computed first then the carries are computed. This - * has the effect of making a very simple inner loop that + * This is the comba method where the columns of the product + * are computed first then the carries are computed. This + * has the effect of making a very simple inner loop that * is executed the most * * W2 represents the outer products and W the inner. * - * A further optimizations is made because the inner - * products are of the form "A * B * 2". The *2 part does - * not need to be computed until the end which is good + * A further optimizations is made because the inner + * products are of the form "A * B * 2". The *2 part does + * not need to be computed until the end which is good * because 64-bit shifts are slow! * * Based on Algorithm 14.16 on pp.597 of HAC. @@ -709,8 +709,8 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) { register mp_digit *tmpb; - /* double first value, since the inner products are - * half of what they should be + /* double first value, since the inner products are + * half of what they should be */ W[0] += W[0] + W2[0]; @@ -762,7 +762,7 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) */ #include -/* computes a = 2**b +/* computes a = 2**b * * Simple algorithm which zeroes the int, grows it then just sets one bit * as required. @@ -808,7 +808,7 @@ mp_2expt (mp_int * a, int b) */ #include -/* b = |a| +/* b = |a| * * Simple function copies the input and fixes the sign to positive */ @@ -943,9 +943,6 @@ mp_add_d (mp_int * a, mp_digit b, mp_int * c) /* if a is positive */ if (a->sign == MP_ZPOS) { - /* setup size */ - c->used = a->used + 1; - /* add digit, after this we're propagating * the carry. */ @@ -962,6 +959,9 @@ mp_add_d (mp_int * a, mp_digit b, mp_int * c) /* set final carry */ ix++; *tmpc++ = mu; + + /* setup size */ + c->used = a->used + 1; } else { /* a was negative and |a| < b */ c->used = 1; @@ -1102,7 +1102,7 @@ mp_and (mp_int * a, mp_int * b, mp_int * c) */ #include -/* trim unused digits +/* trim unused digits * * This is used to ensure that leading zero digits are * trimed and the leading "used" digit will be non-zero @@ -1183,7 +1183,7 @@ mp_clear (mp_int * a) #include #include -void mp_clear_multi(mp_int *mp, ...) +void mp_clear_multi(mp_int *mp, ...) { mp_int* next_mp = mp; va_list args; @@ -1226,7 +1226,7 @@ mp_cmp (mp_int * a, mp_int * b) return MP_GT; } } - + /* compare digits */ if (a->sign == MP_NEG) { /* if negative compare opposite direction */ @@ -1309,7 +1309,7 @@ mp_cmp_mag (mp_int * a, mp_int * b) if (a->used > b->used) { return MP_GT; } - + if (a->used < b->used) { return MP_LT; } @@ -1477,7 +1477,7 @@ mp_count_bits (mp_int * a) /* get number of digits and add that */ r = (a->used - 1) * DIGIT_BIT; - + /* take the last digit and count the bits in it */ q = a->dp[a->used - 1]; while (q > ((mp_digit) 0)) { @@ -1506,17 +1506,17 @@ mp_count_bits (mp_int * a) */ #include -/* integer signed division. +/* integer signed division. * c*b + d == a [e.g. a/b, c=quotient, d=remainder] * HAC pp.598 Algorithm 14.20 * - * Note that the description in HAC is horribly - * incomplete. For example, it doesn't consider - * the case where digits are removed from 'x' in - * the inner loop. It also doesn't consider the + * Note that the description in HAC is horribly + * incomplete. For example, it doesn't consider + * the case where digits are removed from 'x' in + * the inner loop. It also doesn't consider the * case that y has fewer than three digits, etc.. * - * The overall algorithm is as described as + * The overall algorithm is as described as * 14.20 from HAC but fixed to treat these cases. */ int @@ -1607,7 +1607,7 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) continue; } - /* step 3.1 if xi == yt then set q{i-t-1} to b-1, + /* step 3.1 if xi == yt then set q{i-t-1} to b-1, * otherwise set q{i-t-1} to (xi*b + x{i-1})/yt */ if (x.dp[i] == y.dp[t]) { q.dp[i - t - 1] = ((((mp_digit)1) << DIGIT_BIT) - 1); @@ -1621,10 +1621,10 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) q.dp[i - t - 1] = (mp_digit) (tmp & (mp_word) (MP_MASK)); } - /* while (q{i-t-1} * (yt * b + y{t-1})) > - xi * b**2 + xi-1 * b + xi-2 - - do q{i-t-1} -= 1; + /* while (q{i-t-1} * (yt * b + y{t-1})) > + xi * b**2 + xi-1 * b + xi-2 + + do q{i-t-1} -= 1; */ q.dp[i - t - 1] = (q.dp[i - t - 1] + 1) & MP_MASK; do { @@ -1675,10 +1675,10 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) } } - /* now q is the quotient and x is the remainder - * [which we have to normalize] + /* now q is the quotient and x is the remainder + * [which we have to normalize] */ - + /* get sign before writing to c */ x.sign = a->sign; @@ -1893,14 +1893,14 @@ mp_div_3 (mp_int * a, mp_int *c, mp_digit * d) mp_word w, t; mp_digit b; int res, ix; - + /* b = 2**DIGIT_BIT / 3 */ b = (((mp_word)1) << ((mp_word)DIGIT_BIT)) / ((mp_word)3); if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { return res; } - + q.used = a->used; q.sign = a->sign; w = 0; @@ -1938,7 +1938,7 @@ mp_div_3 (mp_int * a, mp_int *c, mp_digit * d) mp_exch(&q, c); } mp_clear(&q); - + return res; } @@ -2020,13 +2020,13 @@ mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d) if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { return res; } - + q.used = a->used; q.sign = a->sign; w = 0; for (ix = a->used - 1; ix >= 0; ix--) { w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); - + if (w >= b) { t = (mp_digit)(w / b); w = w % b; @@ -2035,17 +2035,17 @@ mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d) } q.dp[ix] = (mp_digit)t; } - + if (d != NULL) { *d = (mp_digit)w; } - + if (c != NULL) { mp_clamp(&q); mp_exch(&q, c); } mp_clear(&q); - + return res; } @@ -2122,7 +2122,7 @@ int mp_dr_is_modulus(mp_int *a) * * Has been modified to use algorithm 7.10 from the LTM book instead * - * Input x must be in the range 0 <= x <= (n-1)^2 + * Input x must be in the range 0 <= x <= (n-1)**2 */ int mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) @@ -2130,10 +2130,10 @@ mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) int err, i, m; mp_word r; mp_digit mu, *tmpx1, *tmpx2; - + /* m = digits in modulus */ m = n->used; - + /* ensure that "x" has at least 2m digits */ if (x->alloc < m + m) { if ((err = mp_grow (x, m + m)) != MP_OKAY) { @@ -2141,20 +2141,20 @@ mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) } } -/* top of loop, this is where the code resumes if +/* top of loop, this is where the code resumes if * another reduction pass is required. */ top: /* aliases for digits */ /* alias for lower half of x */ tmpx1 = x->dp; - + /* alias for upper half of x, or x/B**m */ tmpx2 = x->dp + m; - + /* set carry to zero */ mu = 0; - + /* compute (x mod B**m) + k * [x/B**m] inline and inplace */ for (i = 0; i < m; i++) { r = ((mp_word)*tmpx2++) * ((mp_word)k) + *tmpx1 + mu; @@ -2173,7 +2173,7 @@ top: /* clamp, sub and return */ mp_clamp (x); - /* if x >= n then subtract and reduce again + /* if x >= n then subtract and reduce again * Each successive "recursion" makes the input smaller and smaller. */ if (mp_cmp_mag (x, n) != MP_LT) { @@ -2208,7 +2208,7 @@ void mp_dr_setup(mp_int *a, mp_digit *d) /* the casts are required if DIGIT_BIT is one less than * the number of bits in a mp_digit [e.g. DIGIT_BIT==31] */ - *d = (mp_digit)((((mp_word)1) << ((mp_word)DIGIT_BIT)) - + *d = (mp_digit)((((mp_word)1) << ((mp_word)DIGIT_BIT)) - ((mp_word)a->dp[0])); } @@ -2232,8 +2232,8 @@ void mp_dr_setup(mp_int *a, mp_digit *d) */ #include -/* swap the elements of two integers, for cases where you can't simply swap the - * mp_int pointers around +/* swap the elements of two integers, for cases where you can't simply swap the + * mp_int pointers around */ void mp_exch (mp_int * a, mp_int * b) @@ -2373,7 +2373,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) if (dr == 0) { dr = mp_reduce_is_2k(P) << 1; } - + /* if the modulus is odd or dr != 0 use the fast method */ if (mp_isodd (P) == 1 || dr != 0) { return mp_exptmod_fast (G, X, P, Y, dr); @@ -2403,7 +2403,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) */ #include -/* computes Y == G^X mod P, HAC pp.616, Algorithm 14.85 +/* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 * * Uses a left-to-right k-ary sliding window to compute the modular exponentiation. * The value of k changes based on the size of the exponent. @@ -2423,10 +2423,10 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) mp_int M[TAB_SIZE], res; mp_digit buf, mp; int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; - + /* use a pointer to the reduction algorithm. This allows us to use * one of many reduction algorithms without modding the guts of - * the code with if statements everywhere. + * the code with if statements everywhere. */ int (*redux)(mp_int*,mp_int*,mp_digit); @@ -2457,7 +2457,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* init M array */ /* init first cell */ if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; + return err; } /* now init the second half of the array */ @@ -2477,7 +2477,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { goto __M; } - + /* automatically pick the comba one if available (saves quite a few calls/ifs) */ if (((P->used * 2 + 1) < MP_WARRAY) && P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { @@ -2698,10 +2698,10 @@ __M: int mp_fread(mp_int *a, int radix, FILE *stream) { int err, ch, neg, y; - + /* clear a */ mp_zero(a); - + /* if first digit is - then set negative */ ch = fgetc(stream); if (ch == '-') { @@ -2710,7 +2710,7 @@ int mp_fread(mp_int *a, int radix, FILE *stream) } else { neg = MP_ZPOS; } - + for (;;) { /* find y in the radix map */ for (y = 0; y < radix; y++) { @@ -2721,7 +2721,7 @@ int mp_fread(mp_int *a, int radix, FILE *stream) if (y == radix) { break; } - + /* shift up and add */ if ((err = mp_mul_d(a, radix, a)) != MP_OKAY) { return err; @@ -2729,13 +2729,13 @@ int mp_fread(mp_int *a, int radix, FILE *stream) if ((err = mp_add_d(a, y, a)) != MP_OKAY) { return err; } - + ch = fgetc(stream); } if (mp_cmp_d(a, 0) != MP_EQ) { a->sign = neg; } - + return MP_OKAY; } @@ -2763,7 +2763,7 @@ int mp_fwrite(mp_int *a, int radix, FILE *stream) { char *buf; int err, len, x; - + len = mp_radix_size(a, radix); if (len == 0) { return MP_VAL; @@ -2773,19 +2773,19 @@ int mp_fwrite(mp_int *a, int radix, FILE *stream) if (buf == NULL) { return MP_MEM; } - + if ((err = mp_toradix(a, buf, radix)) != MP_OKAY) { free(buf); return err; } - + for (x = 0; x < len; x++) { if (fputc(buf[x], stream) == EOF) { free(buf); return MP_VAL; } } - + free(buf); return MP_OKAY; } @@ -2880,17 +2880,17 @@ mp_gcd (mp_int * a, mp_int * b, mp_int * c) /* swap u and v to make sure v is >= u */ mp_exch(&u, &v); } - + /* subtract smallest from largest */ if ((res = s_mp_sub(&v, &u, &v)) != MP_OKAY) { goto __V; } - + /* Divide out all factors of two */ if ((res = mp_div_2d(&v, mp_cnt_lsb(&v), &v, NULL)) != MP_OKAY) { goto __V; - } - } + } + } /* multiply by 2**k which we divided out at the beginning */ if ((res = mp_mul_2d (&u, k, c)) != MP_OKAY) { @@ -2927,17 +2927,29 @@ int mp_grow (mp_int * a, int size) { int i; + mp_digit *tmp; + /* if the alloc size is smaller alloc more ram */ if (a->alloc < size) { /* ensure there are always at least MP_PREC digits extra on top */ - size += (MP_PREC * 2) - (size % MP_PREC); + size += (MP_PREC * 2) - (size % MP_PREC); - a->dp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * size); - if (a->dp == NULL) { + /* reallocate the array a->dp + * + * We store the return in a temporary variable + * in case the operation failed we don't want + * to overwrite the dp member of a. + */ + tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * size); + if (tmp == NULL) { + /* reallocation failed but "a" is still valid [can be freed] */ return MP_MEM; } + /* reallocation succeeded so set a->dp */ + a->dp = tmp; + /* zero excess digits */ i = a->alloc; a->alloc = size; @@ -3037,7 +3049,7 @@ mp_init_copy (mp_int * a, mp_int * b) #include #include -int mp_init_multi(mp_int *mp, ...) +int mp_init_multi(mp_int *mp, ...) { mp_err res = MP_OKAY; /* Assume ok until proven otherwise */ int n = 0; /* Number of ok inits */ @@ -3051,11 +3063,11 @@ int mp_init_multi(mp_int *mp, ...) succeeded in init-ing, then return error. */ va_list clean_args; - + /* end the current list */ va_end(args); - - /* now start cleaning up */ + + /* now start cleaning up */ cur_arg = mp; va_start(clean_args, mp); while (n--) { @@ -3098,8 +3110,8 @@ int mp_init_size (mp_int * a, int size) { /* pad size so there are always extra digits */ - size += (MP_PREC * 2) - (size % MP_PREC); - + size += (MP_PREC * 2) - (size % MP_PREC); + /* alloc mem */ a->dp = OPT_CAST calloc (sizeof (mp_digit), size); if (a->dp == NULL) { @@ -3147,9 +3159,9 @@ mp_invmod (mp_int * a, mp_int * b, mp_int * c) if (mp_isodd (b) == 1) { return fast_mp_invmod (a, b, c); } - + /* init temps */ - if ((res = mp_init_multi(&x, &y, &u, &v, + if ((res = mp_init_multi(&x, &y, &u, &v, &A, &B, &C, &D, NULL)) != MP_OKAY) { return res; } @@ -3276,14 +3288,14 @@ top: goto __ERR; } } - + /* too big */ while (mp_cmp_mag(&C, b) != MP_LT) { if ((res = mp_sub(&C, b, &C)) != MP_OKAY) { goto __ERR; } } - + /* C is now the inverse */ mp_exch (&C, c); res = MP_OKAY; @@ -3414,33 +3426,33 @@ __A1:mp_clear (&a1); */ #include -/* c = |a| * |b| using Karatsuba Multiplication using +/* c = |a| * |b| using Karatsuba Multiplication using * three half size multiplications * - * Let B represent the radix [e.g. 2**DIGIT_BIT] and - * let n represent half of the number of digits in + * Let B represent the radix [e.g. 2**DIGIT_BIT] and + * let n represent half of the number of digits in * the min(a,b) * * a = a1 * B**n + a0 * b = b1 * B**n + b0 * - * Then, a * b => + * Then, a * b => a1b1 * B**2n + ((a1 - a0)(b1 - b0) + a0b0 + a1b1) * B + a0b0 * - * Note that a1b1 and a0b0 are used twice and only need to be - * computed once. So in total three half size (half # of - * digit) multiplications are performed, a0b0, a1b1 and + * Note that a1b1 and a0b0 are used twice and only need to be + * computed once. So in total three half size (half # of + * digit) multiplications are performed, a0b0, a1b1 and * (a1-b1)(a0-b0) * * Note that a multiplication of half the digits requires - * 1/4th the number of single precision multiplications so in - * total after one call 25% of the single precision multiplications - * are saved. Note also that the call to mp_mul can end up back - * in this function if the a0, a1, b0, or b1 are above the threshold. - * This is known as divide-and-conquer and leads to the famous - * O(N**lg(3)) or O(N**1.584) work which is asymptopically lower than - * the standard O(N**2) that the baseline/comba methods use. - * Generally though the overhead of this method doesn't pay off + * 1/4th the number of single precision multiplications so in + * total after one call 25% of the single precision multiplications + * are saved. Note also that the call to mp_mul can end up back + * in this function if the a0, a1, b0, or b1 are above the threshold. + * This is known as divide-and-conquer and leads to the famous + * O(N**lg(3)) or O(N**1.584) work which is asymptopically lower than + * the standard O(N**2) that the baseline/comba methods use. + * Generally though the overhead of this method doesn't pay off * until a certain size (N ~ 80) is reached. */ int @@ -3512,7 +3524,7 @@ mp_karatsuba_mul (mp_int * a, mp_int * b, mp_int * c) } } - /* only need to clamp the lower words since by definition the + /* only need to clamp the lower words since by definition the * upper words x1/y1 must have a known number of digits */ mp_clamp (&x0); @@ -3520,7 +3532,7 @@ mp_karatsuba_mul (mp_int * a, mp_int * b, mp_int * c) /* now calc the products x0y0 and x1y1 */ /* after this x0 is no longer required, free temp [x0==t2]! */ - if (mp_mul (&x0, &y0, &x0y0) != MP_OKAY) + if (mp_mul (&x0, &y0, &x0y0) != MP_OKAY) goto X1Y1; /* x0y0 = x0*y0 */ if (mp_mul (&x1, &y1, &x1y1) != MP_OKAY) goto X1Y1; /* x1y1 = x1*y1 */ @@ -3583,11 +3595,11 @@ ERR: */ #include -/* Karatsuba squaring, computes b = a*a using three +/* Karatsuba squaring, computes b = a*a using three * half size squarings * - * See comments of mp_karatsuba_mul for details. It - * is essentially the same algorithm but merely + * See comments of mp_karatsuba_mul for details. It + * is essentially the same algorithm but merely * tuned to perform recursive squarings. */ int @@ -3875,7 +3887,7 @@ mp_mod (mp_int * a, mp_int * b, mp_int * c) */ #include -/* calc a value mod 2^b */ +/* calc a value mod 2**b */ int mp_mod_2d (mp_int * a, int b, mp_int * c) { @@ -4024,8 +4036,8 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) * are fixed up in the inner loop. */ digs = n->used * 2 + 1; - if ((digs < MP_WARRAY) && - n->used < + if ((digs < MP_WARRAY) && + n->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { return fast_mp_montgomery_reduce (x, n, rho); } @@ -4063,7 +4075,7 @@ mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) /* set the carry to zero */ u = 0; - + /* Multiply and add in place */ for (iy = 0; iy < n->used; iy++) { /* compute product and sum */ @@ -4199,14 +4211,14 @@ mp_mul (mp_int * a, mp_int * b, mp_int * c) } else { /* can we use the fast multiplier? * - * The fast multiplier can be used if the output will - * have less than MP_WARRAY digits and the number of + * The fast multiplier can be used if the output will + * have less than MP_WARRAY digits and the number of * digits won't affect carry propagation */ int digs = a->used + b->used + 1; if ((digs < MP_WARRAY) && - MIN(a->used, b->used) <= + MIN(a->used, b->used) <= (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { res = fast_s_mp_mul_digs (a, b, c, digs); } else { @@ -4258,24 +4270,24 @@ mp_mul_2 (mp_int * a, mp_int * b) /* alias for source */ tmpa = a->dp; - + /* alias for dest */ tmpb = b->dp; /* carry */ r = 0; for (x = 0; x < a->used; x++) { - - /* get what will be the *next* carry bit from the - * MSB of the current digit + + /* get what will be the *next* carry bit from the + * MSB of the current digit */ rr = *tmpa >> ((mp_digit)(DIGIT_BIT - 1)); - + /* now shift up this digit, add in the carry [from the previous] */ *tmpb++ = ((*tmpa++ << ((mp_digit)1)) | r) & MP_MASK; - - /* copy the carry that would be from the source - * digit into the next iteration + + /* copy the carry that would be from the source + * digit into the next iteration */ r = rr; } @@ -4287,8 +4299,8 @@ mp_mul_2 (mp_int * a, mp_int * b) ++(b->used); } - /* now zero any excess digits on the destination - * that we didn't write to + /* now zero any excess digits on the destination + * that we didn't write to */ tmpb = b->dp + b->used; for (x = b->used; x < oldused; x++) { @@ -4373,7 +4385,7 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) /* set the carry to the carry bits of the current word */ r = rr; } - + /* set final carry */ if (r != 0) { c->dp[(c->used)++] = r; @@ -4406,12 +4418,13 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) int mp_mul_d (mp_int * a, mp_digit b, mp_int * c) { - int res, pa, olduse; + mp_digit u, *tmpa, *tmpc; + mp_word r; + int ix, res, olduse; /* make sure c is big enough to hold a*b */ - pa = a->used; - if (c->alloc < pa + 1) { - if ((res = mp_grow (c, pa + 1)) != MP_OKAY) { + if (c->alloc < a->used + 1) { + if ((res = mp_grow (c, a->used + 1)) != MP_OKAY) { return res; } } @@ -4419,43 +4432,42 @@ mp_mul_d (mp_int * a, mp_digit b, mp_int * c) /* get the original destinations used count */ olduse = c->used; - /* set the new temporary used count */ - c->used = pa + 1; + /* set the sign */ c->sign = a->sign; - { - register mp_digit u, *tmpa, *tmpc; - register mp_word r; - register int ix; + /* alias for a->dp [source] */ + tmpa = a->dp; - /* alias for a->dp [source] */ - tmpa = a->dp; + /* alias for c->dp [dest] */ + tmpc = c->dp; - /* alias for c->dp [dest] */ - tmpc = c->dp; + /* zero carry */ + u = 0; - /* zero carry */ - u = 0; - for (ix = 0; ix < pa; ix++) { - /* compute product and carry sum for this term */ - r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); + /* compute columns */ + for (ix = 0; ix < a->used; ix++) { + /* compute product and carry sum for this term */ + r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); - /* mask off higher bits to get a single digit */ - *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); + /* mask off higher bits to get a single digit */ + *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); - /* send carry into next iteration */ - u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); - } - /* store final carry [if any] */ - *tmpc++ = u; - - /* now zero digits above the top */ - for (; pa < olduse; pa++) { - *tmpc++ = 0; - } + /* send carry into next iteration */ + u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); } - mp_clamp (c); + /* store final carry [if any] */ + *tmpc++ = u; + + /* now zero digits above the top */ + while (ix++ < olduse) { + *tmpc++ = 0; + } + + /* set used count */ + c->used = a->used + 1; + mp_clamp(c); + return MP_OKAY; } @@ -4518,14 +4530,14 @@ mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) */ #include -/* find the n'th root of an integer +/* find the n'th root of an integer * - * Result found such that (c)**b <= a and (c+1)**b > a + * Result found such that (c)**b <= a and (c+1)**b > a * - * This algorithm uses Newton's approximation - * x[i+1] = x[i] - f(x[i])/f'(x[i]) - * which will find the root in log(N) time where - * each step involves a fair bit. This is not meant to + * This algorithm uses Newton's approximation + * x[i+1] = x[i] - f(x[i])/f'(x[i]) + * which will find the root in log(N) time where + * each step involves a fair bit. This is not meant to * find huge roots [square and cube, etc]. */ int @@ -4565,31 +4577,31 @@ mp_n_root (mp_int * a, mp_digit b, mp_int * c) } /* t2 = t1 - ((t1**b - a) / (b * t1**(b-1))) */ - + /* t3 = t1**(b-1) */ - if ((res = mp_expt_d (&t1, b - 1, &t3)) != MP_OKAY) { + if ((res = mp_expt_d (&t1, b - 1, &t3)) != MP_OKAY) { goto __T3; } /* numerator */ /* t2 = t1**b */ - if ((res = mp_mul (&t3, &t1, &t2)) != MP_OKAY) { + if ((res = mp_mul (&t3, &t1, &t2)) != MP_OKAY) { goto __T3; } /* t2 = t1**b - a */ - if ((res = mp_sub (&t2, a, &t2)) != MP_OKAY) { + if ((res = mp_sub (&t2, a, &t2)) != MP_OKAY) { goto __T3; } /* denominator */ /* t3 = t1**(b-1) * b */ - if ((res = mp_mul_d (&t3, b, &t3)) != MP_OKAY) { + if ((res = mp_mul_d (&t3, b, &t3)) != MP_OKAY) { goto __T3; } /* t3 = (t1**b - a)/(b * t1**(b-1)) */ - if ((res = mp_div (&t2, &t3, &t3, NULL)) != MP_OKAY) { + if ((res = mp_div (&t2, &t3, &t3, NULL)) != MP_OKAY) { goto __T3; } @@ -4732,7 +4744,7 @@ mp_or (mp_int * a, mp_int * b, mp_int * c) #include /* performs one Fermat test. - * + * * If "a" were prime then b**a == b (mod a) since the order of * the multiplicative sub-group would be phi(a) = a-1. That means * it would be the same as b**(a mod (a-1)) == b**1 == b (mod a). @@ -4792,7 +4804,7 @@ __T:mp_clear (&t); */ #include -/* determines if an integers is divisible by one +/* determines if an integers is divisible by one * of the first PRIME_SIZE primes or not * * sets result to 0 if not, 1 if yes @@ -4923,11 +4935,11 @@ __B:mp_clear (&b); */ #include -/* Miller-Rabin test of "a" to the base of "b" as described in +/* Miller-Rabin test of "a" to the base of "b" as described in * HAC pp. 139 Algorithm 4.24 * * Sets result to 0 if definitely composite or 1 if probably prime. - * Randomly the chance of error is no more than 1/4 and often + * Randomly the chance of error is no more than 1/4 and often * very much lower. */ int @@ -4942,7 +4954,7 @@ mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) /* ensure b > 1 */ if (mp_cmp_d(b, 1) != MP_GT) { return MP_VAL; - } + } /* get n1 = a - 1 */ if ((err = mp_init_copy (&n1, a)) != MP_OKAY) { @@ -5338,8 +5350,8 @@ mp_read_radix (mp_int * a, char *str, int radix) return MP_VAL; } - /* if the leading digit is a - * minus set the sign to negative. + /* if the leading digit is a + * minus set the sign to negative. */ if (*str == '-') { ++str; @@ -5350,7 +5362,7 @@ mp_read_radix (mp_int * a, char *str, int radix) /* set the integer to the default of zero */ mp_zero (a); - + /* process each digit of the string */ while (*str) { /* if the radix < 36 the conversion is case insensitive @@ -5364,9 +5376,9 @@ mp_read_radix (mp_int * a, char *str, int radix) } } - /* if the char was found in the map + /* if the char was found in the map * and is less than the given radix add it - * to the number, otherwise exit the loop. + * to the number, otherwise exit the loop. */ if (y < radix) { if ((res = mp_mul_d (a, (mp_digit) radix, a)) != MP_OKAY) { @@ -5380,7 +5392,7 @@ mp_read_radix (mp_int * a, char *str, int radix) } ++str; } - + /* set the sign only if a != 0 */ if (mp_iszero(a) != 1) { a->sign = neg; @@ -5501,7 +5513,7 @@ mp_read_unsigned_bin (mp_int * a, unsigned char *b, int c) */ #include -/* reduces x mod m, assumes 0 < x < m**2, mu is +/* reduces x mod m, assumes 0 < x < m**2, mu is * precomputed via mp_reduce_setup. * From HAC pp.604 Algorithm 14.42 */ @@ -5517,7 +5529,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q1 = x / b**(k-1) */ - mp_rshd (&q, um - 1); + mp_rshd (&q, um - 1); /* according to HAC this optimization is ok */ if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { @@ -5531,7 +5543,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q3 = q2 / b**(k+1) */ - mp_rshd (&q, um + 1); + mp_rshd (&q, um + 1); /* x = x mod b**(k+1), quick (no division) */ if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) { @@ -5563,7 +5575,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) goto CLEANUP; } } - + CLEANUP: mp_clear (&q); @@ -5595,35 +5607,35 @@ mp_reduce_2k(mp_int *a, mp_int *n, mp_digit k) { mp_int q; int p, res; - + if ((res = mp_init(&q)) != MP_OKAY) { return res; } - - p = mp_count_bits(n); + + p = mp_count_bits(n); top: /* q = a/2**p, a = a mod 2**p */ if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { goto ERR; } - + if (k != 1) { /* q = q * k */ - if ((res = mp_mul_d(&q, k, &q)) != MP_OKAY) { + if ((res = mp_mul_d(&q, k, &q)) != MP_OKAY) { goto ERR; } } - + /* a = a + q */ if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { goto ERR; } - + if (mp_cmp_mag(a, n) != MP_LT) { s_mp_sub(a, n, a); goto top; } - + ERR: mp_clear(&q); return res; @@ -5650,27 +5662,27 @@ ERR: #include /* determines the setup value */ -int +int mp_reduce_2k_setup(mp_int *a, mp_digit *d) { int res, p; mp_int tmp; - + if ((res = mp_init(&tmp)) != MP_OKAY) { return res; } - + p = mp_count_bits(a); if ((res = mp_2expt(&tmp, p)) != MP_OKAY) { mp_clear(&tmp); return res; } - + if ((res = s_mp_sub(&tmp, a, &tmp)) != MP_OKAY) { mp_clear(&tmp); return res; } - + *d = tmp.dp[0]; mp_clear(&tmp); return MP_OKAY; @@ -5696,11 +5708,11 @@ mp_reduce_2k_setup(mp_int *a, mp_digit *d) #include /* determines if mp_reduce_2k can be used */ -int +int mp_reduce_is_2k(mp_int *a) { int ix, iy; - + if (a->used == 0) { return 0; } else if (a->used == 1) { @@ -5708,7 +5720,7 @@ mp_reduce_is_2k(mp_int *a) } else if (a->used > 1) { iy = mp_count_bits(a); for (ix = DIGIT_BIT; ix < iy; ix++) { - if ((a->dp[ix/DIGIT_BIT] & + if ((a->dp[ix/DIGIT_BIT] & ((mp_digit)1 << (mp_digit)(ix % DIGIT_BIT))) == 0) { return 0; } @@ -5744,7 +5756,7 @@ int mp_reduce_setup (mp_int * a, mp_int * b) { int res; - + if ((res = mp_2expt (a, b->used * 2 * DIGIT_BIT)) != MP_OKAY) { return res; } @@ -5798,8 +5810,8 @@ mp_rshd (mp_int * a, int b) /* top [offset into digits] */ top = a->dp + b; - /* this is implemented as a sliding window where - * the window is b-digits long and digits from + /* this is implemented as a sliding window where + * the window is b-digits long and digits from * the top of the window are copied to the bottom * * e.g. @@ -5817,7 +5829,7 @@ mp_rshd (mp_int * a, int b) *bottom++ = 0; } } - + /* remove excess digits */ a->used -= b; } @@ -5876,7 +5888,7 @@ mp_set_int (mp_int * a, unsigned int b) int x, res; mp_zero (a); - + /* set four bits at a time */ for (x = 0; x < 8; x++) { /* shift the number up four bits */ @@ -5920,10 +5932,12 @@ mp_set_int (mp_int * a, unsigned int b) int mp_shrink (mp_int * a) { + mp_digit *tmp; if (a->alloc != a->used) { - if ((a->dp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * a->used)) == NULL) { + if ((tmp = OPT_CAST XREALLOC (a->dp, sizeof (mp_digit) * a->used)) == NULL) { return MP_MEM; } + a->dp = tmp; a->alloc = a->used; } return MP_OKAY; @@ -5987,8 +6001,8 @@ mp_sqr (mp_int * a, mp_int * b) res = mp_karatsuba_sqr (a, b); } else { /* can we use the fast comba multiplier? */ - if ((a->used * 2 + 1) < MP_WARRAY && - a->used < + if ((a->used * 2 + 1) < MP_WARRAY && + a->used < (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) { res = fast_s_mp_sqr (a, b); } else { @@ -6173,7 +6187,8 @@ mp_sub_d (mp_int * a, mp_digit b, mp_int * c) } } - for (; ix < oldused; ix++) { + /* zero excess digits */ + while (ix++ < oldused) { *tmpc++ = 0; } mp_clamp(c); @@ -6320,22 +6335,22 @@ mp_to_unsigned_bin (mp_int * a, unsigned char *b) #include /* multiplication using the Toom-Cook 3-way algorithm */ -int +int mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) { mp_int w0, w1, w2, w3, w4, tmp1, tmp2, a0, a1, a2, b0, b1, b2; int res, B; - + /* init temps */ - if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, - &a0, &a1, &a2, &b0, &b1, + if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, + &a0, &a1, &a2, &b0, &b1, &b2, &tmp1, &tmp2, NULL)) != MP_OKAY) { return res; } - + /* B */ B = MIN(a->used, b->used) / 3; - + /* a = a2 * B**2 + a1 * B + a0 */ if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) { goto ERR; @@ -6351,7 +6366,7 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) goto ERR; } mp_rshd(&a2, B*2); - + /* b = b2 * B**2 + b1 * B + b0 */ if ((res = mp_mod_2d(b, DIGIT_BIT * B, &b0)) != MP_OKAY) { goto ERR; @@ -6367,17 +6382,17 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) goto ERR; } mp_rshd(&b2, B*2); - + /* w0 = a0*b0 */ if ((res = mp_mul(&a0, &b0, &w0)) != MP_OKAY) { goto ERR; } - + /* w4 = a2 * b2 */ if ((res = mp_mul(&a2, &b2, &w4)) != MP_OKAY) { goto ERR; } - + /* w1 = (a2 + 2(a1 + 2a0))(b2 + 2(b1 + 2b0)) */ if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) { goto ERR; @@ -6391,7 +6406,7 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_mul_2(&b0, &tmp2)) != MP_OKAY) { goto ERR; } @@ -6404,11 +6419,11 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) if ((res = mp_add(&tmp2, &b2, &tmp2)) != MP_OKAY) { goto ERR; } - + if ((res = mp_mul(&tmp1, &tmp2, &w1)) != MP_OKAY) { goto ERR; } - + /* w3 = (a0 + 2(a1 + 2a2))(b0 + 2(b1 + 2b2)) */ if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) { goto ERR; @@ -6422,7 +6437,7 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_mul_2(&b2, &tmp2)) != MP_OKAY) { goto ERR; } @@ -6435,11 +6450,11 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) if ((res = mp_add(&tmp2, &b0, &tmp2)) != MP_OKAY) { goto ERR; } - + if ((res = mp_mul(&tmp1, &tmp2, &w3)) != MP_OKAY) { goto ERR; } - + /* w2 = (a2 + a1 + a0)(b2 + b1 + b0) */ if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) { @@ -6457,19 +6472,19 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) if ((res = mp_mul(&tmp1, &tmp2, &w2)) != MP_OKAY) { goto ERR; } - - /* now solve the matrix - + + /* now solve the matrix + 0 0 0 0 1 1 2 4 8 16 1 1 1 1 1 16 8 4 2 1 1 0 0 0 0 - - using 12 subtractions, 4 shifts, - 2 small divisions and 1 small multiplication + + using 12 subtractions, 4 shifts, + 2 small divisions and 1 small multiplication */ - + /* r1 - r4 */ if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) { goto ERR; @@ -6541,7 +6556,7 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) { goto ERR; } - + /* at this point shift W[n] by B*n */ if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) { goto ERR; @@ -6554,8 +6569,8 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) } if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) { goto ERR; - } - + } + if ((res = mp_add(&w0, &w1, c)) != MP_OKAY) { goto ERR; } @@ -6567,15 +6582,15 @@ mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) } if ((res = mp_add(&tmp1, c, c)) != MP_OKAY) { goto ERR; - } - + } + ERR: - mp_clear_multi(&w0, &w1, &w2, &w3, &w4, - &a0, &a1, &a2, &b0, &b1, + mp_clear_multi(&w0, &w1, &w2, &w3, &w4, + &a0, &a1, &a2, &b0, &b1, &b2, &tmp1, &tmp2, NULL); return res; -} - +} + /* End: bn_mp_toom_mul.c */ @@ -6597,12 +6612,12 @@ ERR: #include /* squaring using Toom-Cook 3-way algorithm */ -int +int mp_toom_sqr(mp_int *a, mp_int *b) { mp_int w0, w1, w2, w3, w4, tmp1, a0, a1, a2; int res, B; - + /* init temps */ if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL)) != MP_OKAY) { return res; @@ -6610,8 +6625,8 @@ mp_toom_sqr(mp_int *a, mp_int *b) /* B */ B = a->used / 3; - - /* a = a2 * B^2 + a1 * B + a0 */ + + /* a = a2 * B**2 + a1 * B + a0 */ if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) { goto ERR; } @@ -6626,17 +6641,17 @@ mp_toom_sqr(mp_int *a, mp_int *b) goto ERR; } mp_rshd(&a2, B*2); - + /* w0 = a0*a0 */ if ((res = mp_sqr(&a0, &w0)) != MP_OKAY) { goto ERR; } - + /* w4 = a2 * a2 */ if ((res = mp_sqr(&a2, &w4)) != MP_OKAY) { goto ERR; } - + /* w1 = (a2 + 2(a1 + 2a0))**2 */ if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) { goto ERR; @@ -6650,11 +6665,11 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_sqr(&tmp1, &w1)) != MP_OKAY) { goto ERR; } - + /* w3 = (a0 + 2(a1 + 2a2))**2 */ if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) { goto ERR; @@ -6668,11 +6683,11 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_sqr(&tmp1, &w3)) != MP_OKAY) { goto ERR; } - + /* w2 = (a2 + a1 + a0)**2 */ if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) { @@ -6684,18 +6699,18 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_sqr(&tmp1, &w2)) != MP_OKAY) { goto ERR; } - - /* now solve the matrix - + + /* now solve the matrix + 0 0 0 0 1 1 2 4 8 16 1 1 1 1 1 16 8 4 2 1 1 0 0 0 0 - + using 12 subtractions, 4 shifts, 2 small divisions and 1 small multiplication. */ - + /* r1 - r4 */ if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) { goto ERR; @@ -6767,7 +6782,7 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) { goto ERR; } - + /* at this point shift W[n] by B*n */ if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) { goto ERR; @@ -6780,8 +6795,8 @@ mp_toom_sqr(mp_int *a, mp_int *b) } if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) { goto ERR; - } - + } + if ((res = mp_add(&w0, &w1, b)) != MP_OKAY) { goto ERR; } @@ -6793,13 +6808,13 @@ mp_toom_sqr(mp_int *a, mp_int *b) } if ((res = mp_add(&tmp1, b, b)) != MP_OKAY) { goto ERR; - } - + } + ERR: mp_clear_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL); return res; -} - +} + /* End: bn_mp_toom_sqr.c */ @@ -6832,14 +6847,14 @@ mp_toradix (mp_int * a, char *str, int radix) if (radix < 2 || radix > 64) { return MP_VAL; } - + /* quick out if its zero */ if (mp_iszero(a) == 1) { *str++ = '0'; *str = '\0'; return MP_OKAY; } - + if ((res = mp_init_copy (&t, a)) != MP_OKAY) { return res; } @@ -6865,11 +6880,11 @@ mp_toradix (mp_int * a, char *str, int radix) * to the first digit [exluding the sign] of the number] */ bn_reverse ((unsigned char *)_s, digs); - + /* append a NULL so the string is properly terminated */ *str++ = '\0'; - - + + mp_clear (&t); return MP_OKAY; } @@ -7153,8 +7168,8 @@ s_mp_add (mp_int * a, mp_int * b, mp_int * c) *tmpc++ &= MP_MASK; } - /* now copy higher words if any, that is in A+B - * if A or B has more digits add those in + /* now copy higher words if any, that is in A+B + * if A or B has more digits add those in */ if (min != max) { for (; i < max; i++) { @@ -7241,7 +7256,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) /* init M array */ /* init first cell */ if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; + return err; } /* now init the second half of the array */ @@ -7265,25 +7280,25 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) /* create M table * - * The M table contains powers of the base, + * The M table contains powers of the base, * e.g. M[x] = G**x mod P * - * The first half of the table is not + * The first half of the table is not * computed though accept for M[0] and M[1] */ if ((err = mp_mod (G, P, &M[1])) != MP_OKAY) { goto __MU; } - /* compute the value at M[1<<(winsize-1)] by squaring - * M[1] (winsize-1) times + /* compute the value at M[1<<(winsize-1)] by squaring + * M[1] (winsize-1) times */ if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { goto __MU; } for (x = 0; x < (winsize - 1); x++) { - if ((err = mp_sqr (&M[1 << (winsize - 1)], + if ((err = mp_sqr (&M[1 << (winsize - 1)], &M[1 << (winsize - 1)])) != MP_OKAY) { goto __MU; } @@ -7441,7 +7456,7 @@ __M: #include /* multiplies |a| * |b| and only computes upto digs digits of result - * HAC pp. 595, Algorithm 14.12 Modified so you can control how + * HAC pp. 595, Algorithm 14.12 Modified so you can control how * many digits of output are created. */ int @@ -7455,7 +7470,7 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* can we use the fast multiplier? */ if (((digs) < MP_WARRAY) && - MIN (a->used, b->used) < + MIN (a->used, b->used) < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { return fast_s_mp_mul_digs (a, b, c, digs); } @@ -7477,10 +7492,10 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* setup some aliases */ /* copy of the digit from a used within the nested loop */ tmpx = a->dp[ix]; - + /* an alias for the destination shifted ix places */ tmpt = t.dp + ix; - + /* an alias for the digits of b */ tmpy = b->dp; @@ -7638,7 +7653,7 @@ s_mp_sqr (mp_int * a, mp_int * b) /* alias for where to store the results */ tmpt = t.dp + (2*ix + 1); - + for (iy = ix + 1; iy < pa; iy++) { /* first calculate the product */ r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); @@ -7786,9 +7801,9 @@ s_mp_sub (mp_int * a, mp_int * b, mp_int * c) /* configured for a AMD XP Thoroughbred core with etc/tune.c */ int KARATSUBA_MUL_CUTOFF = 109, /* Min. number of digits before Karatsuba multiplication is used. */ KARATSUBA_SQR_CUTOFF = 127, /* Min. number of digits before Karatsuba squaring is used. */ - + TOOM_MUL_CUTOFF = 350, /* no optimal values of these are known yet so set em high */ - TOOM_SQR_CUTOFF = 400; + TOOM_SQR_CUTOFF = 400; /* End: bncore.c */ diff --git a/mycrypt.h b/mycrypt.h index 434f867..07306ce 100644 --- a/mycrypt.h +++ b/mycrypt.h @@ -16,8 +16,8 @@ extern "C" { #endif /* version */ -#define CRYPT 0x0090 -#define SCRYPT "0.90" +#define CRYPT 0x0091 +#define SCRYPT "0.91" /* max size of either a cipher/hash block or symmetric key [largest of the two] */ #define MAXBLOCKSIZE 128 @@ -49,6 +49,7 @@ enum { CRYPT_PK_NOT_PRIVATE, /* Requires a private PK key */ CRYPT_INVALID_ARG, /* Generic invalid argument */ + CRYPT_FILE_NOTFOUND, /* File Not Found */ CRYPT_PK_INVALID_TYPE, /* Invalid type of PK key */ CRYPT_PK_INVALID_SYSTEM,/* Invalid PK system specified */ diff --git a/mycrypt_custom.h b/mycrypt_custom.h index b9f853c..3f4084c 100644 --- a/mycrypt_custom.h +++ b/mycrypt_custom.h @@ -16,6 +16,7 @@ #define XCLOCK clock #define XCLOCKS_PER_SEC CLOCKS_PER_SEC #define SMALL_CODE +#define CLEAN_STACK #define LTC_TEST #define BLOWFISH #define RC2 diff --git a/strings.c b/strings.c index 4019638..583be7c 100644 --- a/strings.c +++ b/strings.c @@ -27,6 +27,7 @@ static const char *err_2_str[] = "A private PK key is required.", "Invalid argument provided.", + "File Not Found", "Invalid PK type.", "Invalid PK system.", @@ -34,7 +35,8 @@ static const char *err_2_str[] = "Key not found in keyring.", "Invalid sized parameter.", - "Invalid size for prime." + "Invalid size for prime.", + }; const char *error_to_string(int err)