diff options
author | beck <> | 2002-05-15 02:29:21 +0000 |
---|---|---|
committer | beck <> | 2002-05-15 02:29:21 +0000 |
commit | b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9 (patch) | |
tree | fa27cf82a1250b64ed3bf5f4a18c7354d470bbcc /src/lib/libcrypto/bn/bn_add.c | |
parent | e471e1ea98d673597b182ea85f29e30c97cd08b5 (diff) | |
download | openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.gz openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.bz2 openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.zip |
OpenSSL 0.9.7 stable 2002 05 08 merge
Diffstat (limited to 'src/lib/libcrypto/bn/bn_add.c')
-rw-r--r-- | src/lib/libcrypto/bn/bn_add.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/libcrypto/bn/bn_add.c b/src/lib/libcrypto/bn/bn_add.c index 5d24691233..6cba07e9f6 100644 --- a/src/lib/libcrypto/bn/bn_add.c +++ b/src/lib/libcrypto/bn/bn_add.c | |||
@@ -64,6 +64,7 @@ | |||
64 | int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) | 64 | int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) |
65 | { | 65 | { |
66 | const BIGNUM *tmp; | 66 | const BIGNUM *tmp; |
67 | int a_neg = a->neg; | ||
67 | 68 | ||
68 | bn_check_top(a); | 69 | bn_check_top(a); |
69 | bn_check_top(b); | 70 | bn_check_top(b); |
@@ -73,10 +74,10 @@ int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) | |||
73 | * -a + b b-a | 74 | * -a + b b-a |
74 | * -a + -b -(a+b) | 75 | * -a + -b -(a+b) |
75 | */ | 76 | */ |
76 | if (a->neg ^ b->neg) | 77 | if (a_neg ^ b->neg) |
77 | { | 78 | { |
78 | /* only one is negative */ | 79 | /* only one is negative */ |
79 | if (a->neg) | 80 | if (a_neg) |
80 | { tmp=a; a=b; b=tmp; } | 81 | { tmp=a; a=b; b=tmp; } |
81 | 82 | ||
82 | /* we are now a - b */ | 83 | /* we are now a - b */ |
@@ -94,12 +95,11 @@ int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) | |||
94 | return(1); | 95 | return(1); |
95 | } | 96 | } |
96 | 97 | ||
97 | if (a->neg) /* both are neg */ | 98 | if (!BN_uadd(r,a,b)) return(0); |
99 | if (a_neg) /* both are neg */ | ||
98 | r->neg=1; | 100 | r->neg=1; |
99 | else | 101 | else |
100 | r->neg=0; | 102 | r->neg=0; |
101 | |||
102 | if (!BN_uadd(r,a,b)) return(0); | ||
103 | return(1); | 103 | return(1); |
104 | } | 104 | } |
105 | 105 | ||
@@ -160,6 +160,7 @@ int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) | |||
160 | *(rp++)= *(ap++); | 160 | *(rp++)= *(ap++); |
161 | } | 161 | } |
162 | /* memcpy(rp,ap,sizeof(*ap)*(max-i));*/ | 162 | /* memcpy(rp,ap,sizeof(*ap)*(max-i));*/ |
163 | r->neg = 0; | ||
163 | return(1); | 164 | return(1); |
164 | } | 165 | } |
165 | 166 | ||
@@ -251,6 +252,7 @@ int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) | |||
251 | #endif | 252 | #endif |
252 | 253 | ||
253 | r->top=max; | 254 | r->top=max; |
255 | r->neg=0; | ||
254 | bn_fix_top(r); | 256 | bn_fix_top(r); |
255 | return(1); | 257 | return(1); |
256 | } | 258 | } |