diff options
Diffstat (limited to 'src/lib/libcrypto/bn')
-rw-r--r-- | src/lib/libcrypto/bn/bn_div.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_exp.c | 32 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_exp2.c | 14 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_gcd.c | 50 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_gf2m.c | 35 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_kron.c | 8 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_mont.c | 11 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_mul.c | 8 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_prime.c | 23 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_sqr.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_sqrt.c | 20 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_x931p.c | 41 |
12 files changed, 140 insertions, 110 deletions
diff --git a/src/lib/libcrypto/bn/bn_div.c b/src/lib/libcrypto/bn/bn_div.c index f4deccf77f..fefc53f9fa 100644 --- a/src/lib/libcrypto/bn/bn_div.c +++ b/src/lib/libcrypto/bn/bn_div.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_div.c,v 1.22 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: bn_div.c,v 1.23 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -170,7 +170,7 @@ BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, | |||
170 | res = BN_CTX_get(ctx); | 170 | res = BN_CTX_get(ctx); |
171 | else | 171 | else |
172 | res = dv; | 172 | res = dv; |
173 | if (sdiv == NULL || res == NULL || tmp == NULL || snum == NULL) | 173 | if (tmp == NULL || snum == NULL || sdiv == NULL || res == NULL) |
174 | goto err; | 174 | goto err; |
175 | 175 | ||
176 | /* First we normalise the numbers */ | 176 | /* First we normalise the numbers */ |
diff --git a/src/lib/libcrypto/bn/bn_exp.c b/src/lib/libcrypto/bn/bn_exp.c index 1aa5503dae..eecab5163b 100644 --- a/src/lib/libcrypto/bn/bn_exp.c +++ b/src/lib/libcrypto/bn/bn_exp.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_exp.c,v 1.19 2014/07/11 15:01:49 miod Exp $ */ | 1 | /* $OpenBSD: bn_exp.c,v 1.20 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -272,9 +272,9 @@ BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, | |||
272 | } | 272 | } |
273 | 273 | ||
274 | BN_CTX_start(ctx); | 274 | BN_CTX_start(ctx); |
275 | aa = BN_CTX_get(ctx); | 275 | if ((aa = BN_CTX_get(ctx)) == NULL) |
276 | val[0] = BN_CTX_get(ctx); | 276 | goto err; |
277 | if (!aa || !val[0]) | 277 | if ((val[0] = BN_CTX_get(ctx)) == NULL) |
278 | goto err; | 278 | goto err; |
279 | 279 | ||
280 | BN_RECP_CTX_init(&recp); | 280 | BN_RECP_CTX_init(&recp); |
@@ -408,10 +408,11 @@ BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, | |||
408 | } | 408 | } |
409 | 409 | ||
410 | BN_CTX_start(ctx); | 410 | BN_CTX_start(ctx); |
411 | d = BN_CTX_get(ctx); | 411 | if ((d = BN_CTX_get(ctx)) == NULL) |
412 | r = BN_CTX_get(ctx); | 412 | goto err; |
413 | val[0] = BN_CTX_get(ctx); | 413 | if ((r = BN_CTX_get(ctx)) == NULL) |
414 | if (!d || !r || !val[0]) | 414 | goto err; |
415 | if ((val[0] = BN_CTX_get(ctx)) == NULL) | ||
415 | goto err; | 416 | goto err; |
416 | 417 | ||
417 | /* If this is not done, things will break in the montgomery | 418 | /* If this is not done, things will break in the montgomery |
@@ -885,10 +886,11 @@ BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p, const BIGNUM *m, | |||
885 | } | 886 | } |
886 | 887 | ||
887 | BN_CTX_start(ctx); | 888 | BN_CTX_start(ctx); |
888 | d = BN_CTX_get(ctx); | 889 | if ((d = BN_CTX_get(ctx)) == NULL) |
889 | r = BN_CTX_get(ctx); | 890 | goto err; |
890 | t = BN_CTX_get(ctx); | 891 | if ((r = BN_CTX_get(ctx)) == NULL) |
891 | if (d == NULL || r == NULL || t == NULL) | 892 | goto err; |
893 | if ((t = BN_CTX_get(ctx)) == NULL) | ||
892 | goto err; | 894 | goto err; |
893 | 895 | ||
894 | if (in_mont != NULL) | 896 | if (in_mont != NULL) |
@@ -1003,9 +1005,9 @@ BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, | |||
1003 | } | 1005 | } |
1004 | 1006 | ||
1005 | BN_CTX_start(ctx); | 1007 | BN_CTX_start(ctx); |
1006 | d = BN_CTX_get(ctx); | 1008 | if ((d = BN_CTX_get(ctx)) == NULL) |
1007 | val[0] = BN_CTX_get(ctx); | 1009 | goto err; |
1008 | if (!d || !val[0]) | 1010 | if ((val[0] = BN_CTX_get(ctx)) == NULL) |
1009 | goto err; | 1011 | goto err; |
1010 | 1012 | ||
1011 | if (!BN_nnmod(val[0],a,m,ctx)) | 1013 | if (!BN_nnmod(val[0],a,m,ctx)) |
diff --git a/src/lib/libcrypto/bn/bn_exp2.c b/src/lib/libcrypto/bn/bn_exp2.c index c8f0294f7a..38bf467a38 100644 --- a/src/lib/libcrypto/bn/bn_exp2.c +++ b/src/lib/libcrypto/bn/bn_exp2.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_exp2.c,v 1.9 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: bn_exp2.c,v 1.10 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -150,11 +150,13 @@ BN_mod_exp2_mont(BIGNUM *rr, const BIGNUM *a1, const BIGNUM *p1, | |||
150 | bits = (bits1 > bits2) ? bits1 : bits2; | 150 | bits = (bits1 > bits2) ? bits1 : bits2; |
151 | 151 | ||
152 | BN_CTX_start(ctx); | 152 | BN_CTX_start(ctx); |
153 | d = BN_CTX_get(ctx); | 153 | if ((d = BN_CTX_get(ctx)) == NULL) |
154 | r = BN_CTX_get(ctx); | 154 | goto err; |
155 | val1[0] = BN_CTX_get(ctx); | 155 | if ((r = BN_CTX_get(ctx)) == NULL) |
156 | val2[0] = BN_CTX_get(ctx); | 156 | goto err; |
157 | if (!d || !r || !val1[0] || !val2[0]) | 157 | if ((val1[0] = BN_CTX_get(ctx)) == NULL) |
158 | goto err; | ||
159 | if ((val2[0] = BN_CTX_get(ctx)) == NULL) | ||
158 | goto err; | 160 | goto err; |
159 | 161 | ||
160 | if (in_mont != NULL) | 162 | if (in_mont != NULL) |
diff --git a/src/lib/libcrypto/bn/bn_gcd.c b/src/lib/libcrypto/bn/bn_gcd.c index 379bea99ad..da9c29a8e5 100644 --- a/src/lib/libcrypto/bn/bn_gcd.c +++ b/src/lib/libcrypto/bn/bn_gcd.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_gcd.c,v 1.9 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: bn_gcd.c,v 1.10 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -125,9 +125,9 @@ BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX *ctx) | |||
125 | bn_check_top(in_b); | 125 | bn_check_top(in_b); |
126 | 126 | ||
127 | BN_CTX_start(ctx); | 127 | BN_CTX_start(ctx); |
128 | a = BN_CTX_get(ctx); | 128 | if ((a = BN_CTX_get(ctx)) == NULL) |
129 | b = BN_CTX_get(ctx); | 129 | goto err; |
130 | if (a == NULL || b == NULL) | 130 | if ((b = BN_CTX_get(ctx)) == NULL) |
131 | goto err; | 131 | goto err; |
132 | 132 | ||
133 | if (BN_copy(a, in_a) == NULL) | 133 | if (BN_copy(a, in_a) == NULL) |
@@ -247,14 +247,19 @@ BN_mod_inverse(BIGNUM *in, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) | |||
247 | bn_check_top(n); | 247 | bn_check_top(n); |
248 | 248 | ||
249 | BN_CTX_start(ctx); | 249 | BN_CTX_start(ctx); |
250 | A = BN_CTX_get(ctx); | 250 | if ((A = BN_CTX_get(ctx)) == NULL) |
251 | B = BN_CTX_get(ctx); | 251 | goto err; |
252 | X = BN_CTX_get(ctx); | 252 | if ((B = BN_CTX_get(ctx)) == NULL) |
253 | D = BN_CTX_get(ctx); | 253 | goto err; |
254 | M = BN_CTX_get(ctx); | 254 | if ((X = BN_CTX_get(ctx)) == NULL) |
255 | Y = BN_CTX_get(ctx); | 255 | goto err; |
256 | T = BN_CTX_get(ctx); | 256 | if ((D = BN_CTX_get(ctx)) == NULL) |
257 | if (T == NULL) | 257 | goto err; |
258 | if ((M = BN_CTX_get(ctx)) == NULL) | ||
259 | goto err; | ||
260 | if ((Y = BN_CTX_get(ctx)) == NULL) | ||
261 | goto err; | ||
262 | if ((T = BN_CTX_get(ctx)) == NULL) | ||
258 | goto err; | 263 | goto err; |
259 | 264 | ||
260 | if (in == NULL) | 265 | if (in == NULL) |
@@ -537,14 +542,19 @@ BN_mod_inverse_no_branch(BIGNUM *in, const BIGNUM *a, const BIGNUM *n, | |||
537 | bn_check_top(n); | 542 | bn_check_top(n); |
538 | 543 | ||
539 | BN_CTX_start(ctx); | 544 | BN_CTX_start(ctx); |
540 | A = BN_CTX_get(ctx); | 545 | if ((A = BN_CTX_get(ctx)) == NULL) |
541 | B = BN_CTX_get(ctx); | 546 | goto err; |
542 | X = BN_CTX_get(ctx); | 547 | if ((B = BN_CTX_get(ctx)) == NULL) |
543 | D = BN_CTX_get(ctx); | 548 | goto err; |
544 | M = BN_CTX_get(ctx); | 549 | if ((X = BN_CTX_get(ctx)) == NULL) |
545 | Y = BN_CTX_get(ctx); | 550 | goto err; |
546 | T = BN_CTX_get(ctx); | 551 | if ((D = BN_CTX_get(ctx)) == NULL) |
547 | if (T == NULL) | 552 | goto err; |
553 | if ((M = BN_CTX_get(ctx)) == NULL) | ||
554 | goto err; | ||
555 | if ((Y = BN_CTX_get(ctx)) == NULL) | ||
556 | goto err; | ||
557 | if ((T = BN_CTX_get(ctx)) == NULL) | ||
548 | goto err; | 558 | goto err; |
549 | 559 | ||
550 | if (in == NULL) | 560 | if (in == NULL) |
diff --git a/src/lib/libcrypto/bn/bn_gf2m.c b/src/lib/libcrypto/bn/bn_gf2m.c index 1cd38c7797..4544369248 100644 --- a/src/lib/libcrypto/bn/bn_gf2m.c +++ b/src/lib/libcrypto/bn/bn_gf2m.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_gf2m.c,v 1.16 2014/10/28 07:35:58 jsg Exp $ */ | 1 | /* $OpenBSD: bn_gf2m.c,v 1.17 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
4 | * | 4 | * |
@@ -840,8 +840,7 @@ BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x, const BIGNUM *p, | |||
840 | bn_check_top(p); | 840 | bn_check_top(p); |
841 | 841 | ||
842 | BN_CTX_start(ctx); | 842 | BN_CTX_start(ctx); |
843 | xinv = BN_CTX_get(ctx); | 843 | if ((xinv = BN_CTX_get(ctx)) == NULL) |
844 | if (xinv == NULL) | ||
845 | goto err; | 844 | goto err; |
846 | 845 | ||
847 | if (!BN_GF2m_mod_inv(xinv, x, p, ctx)) | 846 | if (!BN_GF2m_mod_inv(xinv, x, p, ctx)) |
@@ -875,11 +874,13 @@ BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x, const BIGNUM *p, | |||
875 | 874 | ||
876 | BN_CTX_start(ctx); | 875 | BN_CTX_start(ctx); |
877 | 876 | ||
878 | a = BN_CTX_get(ctx); | 877 | if ((a = BN_CTX_get(ctx)) == NULL) |
879 | b = BN_CTX_get(ctx); | 878 | goto err; |
880 | u = BN_CTX_get(ctx); | 879 | if ((b = BN_CTX_get(ctx)) == NULL) |
881 | v = BN_CTX_get(ctx); | 880 | goto err; |
882 | if (v == NULL) | 881 | if ((u = BN_CTX_get(ctx)) == NULL) |
882 | goto err; | ||
883 | if ((v = BN_CTX_get(ctx)) == NULL) | ||
883 | goto err; | 884 | goto err; |
884 | 885 | ||
885 | /* reduce x and y mod p */ | 886 | /* reduce x and y mod p */ |
@@ -1137,10 +1138,11 @@ BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a_, const int p[], | |||
1137 | } | 1138 | } |
1138 | 1139 | ||
1139 | BN_CTX_start(ctx); | 1140 | BN_CTX_start(ctx); |
1140 | a = BN_CTX_get(ctx); | 1141 | if ((a = BN_CTX_get(ctx)) == NULL) |
1141 | z = BN_CTX_get(ctx); | 1142 | goto err; |
1142 | w = BN_CTX_get(ctx); | 1143 | if ((z = BN_CTX_get(ctx)) == NULL) |
1143 | if (w == NULL) | 1144 | goto err; |
1145 | if ((w = BN_CTX_get(ctx)) == NULL) | ||
1144 | goto err; | 1146 | goto err; |
1145 | 1147 | ||
1146 | if (!BN_GF2m_mod_arr(a, a_, p)) | 1148 | if (!BN_GF2m_mod_arr(a, a_, p)) |
@@ -1169,10 +1171,11 @@ BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a_, const int p[], | |||
1169 | } | 1171 | } |
1170 | else /* m is even */ | 1172 | else /* m is even */ |
1171 | { | 1173 | { |
1172 | rho = BN_CTX_get(ctx); | 1174 | if ((rho = BN_CTX_get(ctx)) == NULL) |
1173 | w2 = BN_CTX_get(ctx); | 1175 | goto err; |
1174 | tmp = BN_CTX_get(ctx); | 1176 | if ((w2 = BN_CTX_get(ctx)) == NULL) |
1175 | if (tmp == NULL) | 1177 | goto err; |
1178 | if ((tmp = BN_CTX_get(ctx)) == NULL) | ||
1176 | goto err; | 1179 | goto err; |
1177 | do { | 1180 | do { |
1178 | if (!BN_rand(rho, p[0], 0, 0)) | 1181 | if (!BN_rand(rho, p[0], 0, 0)) |
diff --git a/src/lib/libcrypto/bn/bn_kron.c b/src/lib/libcrypto/bn/bn_kron.c index 699cda55f0..274da5d186 100644 --- a/src/lib/libcrypto/bn/bn_kron.c +++ b/src/lib/libcrypto/bn/bn_kron.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_kron.c,v 1.5 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_kron.c,v 1.6 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -79,9 +79,9 @@ BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx) | |||
79 | bn_check_top(b); | 79 | bn_check_top(b); |
80 | 80 | ||
81 | BN_CTX_start(ctx); | 81 | BN_CTX_start(ctx); |
82 | A = BN_CTX_get(ctx); | 82 | if ((A = BN_CTX_get(ctx)) == NULL) |
83 | B = BN_CTX_get(ctx); | 83 | goto end; |
84 | if (B == NULL) | 84 | if ((B = BN_CTX_get(ctx)) == NULL) |
85 | goto end; | 85 | goto end; |
86 | 86 | ||
87 | err = !BN_copy(A, a); | 87 | err = !BN_copy(A, a); |
diff --git a/src/lib/libcrypto/bn/bn_mont.c b/src/lib/libcrypto/bn/bn_mont.c index 5803ca493d..3eb9913a9e 100644 --- a/src/lib/libcrypto/bn/bn_mont.c +++ b/src/lib/libcrypto/bn/bn_mont.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_mont.c,v 1.23 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_mont.c,v 1.24 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -149,8 +149,7 @@ BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, | |||
149 | #endif | 149 | #endif |
150 | 150 | ||
151 | BN_CTX_start(ctx); | 151 | BN_CTX_start(ctx); |
152 | tmp = BN_CTX_get(ctx); | 152 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
153 | if (tmp == NULL) | ||
154 | goto err; | 153 | goto err; |
155 | 154 | ||
156 | bn_check_top(tmp); | 155 | bn_check_top(tmp); |
@@ -288,9 +287,9 @@ BN_from_montgomery(BIGNUM *ret, const BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx) | |||
288 | BIGNUM *t1, *t2; | 287 | BIGNUM *t1, *t2; |
289 | 288 | ||
290 | BN_CTX_start(ctx); | 289 | BN_CTX_start(ctx); |
291 | t1 = BN_CTX_get(ctx); | 290 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
292 | t2 = BN_CTX_get(ctx); | 291 | goto err; |
293 | if (t1 == NULL || t2 == NULL) | 292 | if ((t2 = BN_CTX_get(ctx)) == NULL) |
294 | goto err; | 293 | goto err; |
295 | 294 | ||
296 | if (!BN_copy(t1, a)) | 295 | if (!BN_copy(t1, a)) |
diff --git a/src/lib/libcrypto/bn/bn_mul.c b/src/lib/libcrypto/bn/bn_mul.c index daba02d6ca..7794d59707 100644 --- a/src/lib/libcrypto/bn/bn_mul.c +++ b/src/lib/libcrypto/bn/bn_mul.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_mul.c,v 1.19 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_mul.c,v 1.20 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1012,8 +1012,7 @@ BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx) | |||
1012 | j = 1 << (j - 1); | 1012 | j = 1 << (j - 1); |
1013 | assert(j <= al || j <= bl); | 1013 | assert(j <= al || j <= bl); |
1014 | k = j + j; | 1014 | k = j + j; |
1015 | t = BN_CTX_get(ctx); | 1015 | if ((t = BN_CTX_get(ctx)) == NULL) |
1016 | if (t == NULL) | ||
1017 | goto err; | 1016 | goto err; |
1018 | if (al > j || bl > j) { | 1017 | if (al > j || bl > j) { |
1019 | if (bn_wexpand(t, k * 4) == NULL) | 1018 | if (bn_wexpand(t, k * 4) == NULL) |
@@ -1057,7 +1056,8 @@ BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx) | |||
1057 | j = BN_num_bits_word((BN_ULONG)al); | 1056 | j = BN_num_bits_word((BN_ULONG)al); |
1058 | j = 1 << (j - 1); | 1057 | j = 1 << (j - 1); |
1059 | k = j + j; | 1058 | k = j + j; |
1060 | t = BN_CTX_get(ctx); | 1059 | if ((t = BN_CTX_get(ctx)) == NULL) |
1060 | goto err; | ||
1061 | if (al == j) /* exact multiple */ | 1061 | if (al == j) /* exact multiple */ |
1062 | { | 1062 | { |
1063 | if (bn_wexpand(t, k * 2) == NULL) | 1063 | if (bn_wexpand(t, k * 2) == NULL) |
diff --git a/src/lib/libcrypto/bn/bn_prime.c b/src/lib/libcrypto/bn/bn_prime.c index e5cd315e47..02780d32e6 100644 --- a/src/lib/libcrypto/bn/bn_prime.c +++ b/src/lib/libcrypto/bn/bn_prime.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_prime.c,v 1.12 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: bn_prime.c,v 1.13 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -170,8 +170,7 @@ BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, | |||
170 | if (ctx == NULL) | 170 | if (ctx == NULL) |
171 | goto err; | 171 | goto err; |
172 | BN_CTX_start(ctx); | 172 | BN_CTX_start(ctx); |
173 | t = BN_CTX_get(ctx); | 173 | if ((t = BN_CTX_get(ctx)) == NULL) |
174 | if (!t) | ||
175 | goto err; | 174 | goto err; |
176 | loop: | 175 | loop: |
177 | /* make a random number and set the top and bottom bits */ | 176 | /* make a random number and set the top and bottom bits */ |
@@ -287,10 +286,11 @@ BN_is_prime_fasttest_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed, | |||
287 | A = t; | 286 | A = t; |
288 | } else | 287 | } else |
289 | A = a; | 288 | A = a; |
290 | A1 = BN_CTX_get(ctx); | 289 | if ((A1 = BN_CTX_get(ctx)) == NULL) |
291 | A1_odd = BN_CTX_get(ctx); | 290 | goto err; |
292 | check = BN_CTX_get(ctx); | 291 | if ((A1_odd = BN_CTX_get(ctx)) == NULL) |
293 | if (check == NULL) | 292 | goto err; |
293 | if ((check = BN_CTX_get(ctx)) == NULL) | ||
294 | goto err; | 294 | goto err; |
295 | 295 | ||
296 | /* compute A1 := A - 1 */ | 296 | /* compute A1 := A - 1 */ |
@@ -461,10 +461,11 @@ probable_prime_dh_safe(BIGNUM *p, int bits, const BIGNUM *padd, | |||
461 | 461 | ||
462 | bits--; | 462 | bits--; |
463 | BN_CTX_start(ctx); | 463 | BN_CTX_start(ctx); |
464 | t1 = BN_CTX_get(ctx); | 464 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
465 | q = BN_CTX_get(ctx); | 465 | goto err; |
466 | qadd = BN_CTX_get(ctx); | 466 | if ((q = BN_CTX_get(ctx)) == NULL) |
467 | if (qadd == NULL) | 467 | goto err; |
468 | if ((qadd = BN_CTX_get(ctx)) == NULL) | ||
468 | goto err; | 469 | goto err; |
469 | 470 | ||
470 | if (!BN_rshift1(qadd, padd)) | 471 | if (!BN_rshift1(qadd, padd)) |
diff --git a/src/lib/libcrypto/bn/bn_sqr.c b/src/lib/libcrypto/bn/bn_sqr.c index 5ea9fb083d..a0dce6ea81 100644 --- a/src/lib/libcrypto/bn/bn_sqr.c +++ b/src/lib/libcrypto/bn/bn_sqr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_sqr.c,v 1.11 2014/07/11 13:26:31 miod Exp $ */ | 1 | /* $OpenBSD: bn_sqr.c,v 1.12 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -85,7 +85,7 @@ BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx) | |||
85 | BN_CTX_start(ctx); | 85 | BN_CTX_start(ctx); |
86 | rr = (a != r) ? r : BN_CTX_get(ctx); | 86 | rr = (a != r) ? r : BN_CTX_get(ctx); |
87 | tmp = BN_CTX_get(ctx); | 87 | tmp = BN_CTX_get(ctx); |
88 | if (!rr || !tmp) | 88 | if (rr == NULL || tmp == NULL) |
89 | goto err; | 89 | goto err; |
90 | 90 | ||
91 | max = 2 * al; /* Non-zero (from above) */ | 91 | max = 2 * al; /* Non-zero (from above) */ |
diff --git a/src/lib/libcrypto/bn/bn_sqrt.c b/src/lib/libcrypto/bn/bn_sqrt.c index 9a59d56b3f..f94fa41094 100644 --- a/src/lib/libcrypto/bn/bn_sqrt.c +++ b/src/lib/libcrypto/bn/bn_sqrt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_sqrt.c,v 1.5 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_sqrt.c,v 1.6 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
3 | * and Bodo Moeller for the OpenSSL project. */ | 3 | * and Bodo Moeller for the OpenSSL project. */ |
4 | /* ==================================================================== | 4 | /* ==================================================================== |
@@ -108,13 +108,17 @@ BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) | |||
108 | } | 108 | } |
109 | 109 | ||
110 | BN_CTX_start(ctx); | 110 | BN_CTX_start(ctx); |
111 | A = BN_CTX_get(ctx); | 111 | if ((A = BN_CTX_get(ctx)) == NULL) |
112 | b = BN_CTX_get(ctx); | 112 | goto end; |
113 | q = BN_CTX_get(ctx); | 113 | if ((b = BN_CTX_get(ctx)) == NULL) |
114 | t = BN_CTX_get(ctx); | 114 | goto end; |
115 | x = BN_CTX_get(ctx); | 115 | if ((q = BN_CTX_get(ctx)) == NULL) |
116 | y = BN_CTX_get(ctx); | 116 | goto end; |
117 | if (y == NULL) | 117 | if ((t = BN_CTX_get(ctx)) == NULL) |
118 | goto end; | ||
119 | if ((x = BN_CTX_get(ctx)) == NULL) | ||
120 | goto end; | ||
121 | if ((y = BN_CTX_get(ctx)) == NULL) | ||
118 | goto end; | 122 | goto end; |
119 | 123 | ||
120 | if (ret == NULL) | 124 | if (ret == NULL) |
diff --git a/src/lib/libcrypto/bn/bn_x931p.c b/src/lib/libcrypto/bn/bn_x931p.c index fc8d4c3c49..89c86c1ff7 100644 --- a/src/lib/libcrypto/bn/bn_x931p.c +++ b/src/lib/libcrypto/bn/bn_x931p.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_x931p.c,v 1.5 2014/06/12 15:49:28 deraadt Exp $ */ | 1 | /* $OpenBSD: bn_x931p.c,v 1.6 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2005. | 3 | * project 2005. |
4 | */ | 4 | */ |
@@ -107,17 +107,21 @@ BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, const BIGNUM *Xp, | |||
107 | return 0; | 107 | return 0; |
108 | 108 | ||
109 | BN_CTX_start(ctx); | 109 | BN_CTX_start(ctx); |
110 | if (!p1) | 110 | if (p1 != NULL) { |
111 | p1 = BN_CTX_get(ctx); | 111 | if ((p1 = BN_CTX_get(ctx)) == NULL) |
112 | 112 | goto err; | |
113 | if (!p2) | 113 | } |
114 | p2 = BN_CTX_get(ctx); | 114 | if (p2 != NULL) { |
115 | 115 | if ((p2 = BN_CTX_get(ctx)) == NULL) | |
116 | t = BN_CTX_get(ctx); | 116 | goto err; |
117 | 117 | } | |
118 | p1p2 = BN_CTX_get(ctx); | ||
119 | 118 | ||
120 | pm1 = BN_CTX_get(ctx); | 119 | if ((t = BN_CTX_get(ctx)) == NULL) |
120 | goto err; | ||
121 | if ((p1p2 = BN_CTX_get(ctx)) == NULL) | ||
122 | goto err; | ||
123 | if ((pm1 = BN_CTX_get(ctx)) == NULL) | ||
124 | goto err; | ||
121 | 125 | ||
122 | if (!bn_x931_derive_pi(p1, Xp1, ctx, cb)) | 126 | if (!bn_x931_derive_pi(p1, Xp1, ctx, cb)) |
123 | goto err; | 127 | goto err; |
@@ -213,7 +217,8 @@ BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx) | |||
213 | return 0; | 217 | return 0; |
214 | 218 | ||
215 | BN_CTX_start(ctx); | 219 | BN_CTX_start(ctx); |
216 | t = BN_CTX_get(ctx); | 220 | if ((t = BN_CTX_get(ctx)) == NULL) |
221 | return 0; | ||
217 | 222 | ||
218 | for (i = 0; i < 1000; i++) { | 223 | for (i = 0; i < 1000; i++) { |
219 | if (!BN_rand(Xq, nbits, 1, 0)) | 224 | if (!BN_rand(Xq, nbits, 1, 0)) |
@@ -247,10 +252,14 @@ BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, | |||
247 | int ret = 0; | 252 | int ret = 0; |
248 | 253 | ||
249 | BN_CTX_start(ctx); | 254 | BN_CTX_start(ctx); |
250 | if (!Xp1) | 255 | if (Xp1 != NULL) { |
251 | Xp1 = BN_CTX_get(ctx); | 256 | if ((Xp1 = BN_CTX_get(ctx)) == NULL) |
252 | if (!Xp2) | 257 | goto error; |
253 | Xp2 = BN_CTX_get(ctx); | 258 | } |
259 | if (Xp2 != NULL) { | ||
260 | if ((Xp2 = BN_CTX_get(ctx)) == NULL) | ||
261 | goto error; | ||
262 | } | ||
254 | 263 | ||
255 | if (!BN_rand(Xp1, 101, 0, 0)) | 264 | if (!BN_rand(Xp1, 101, 0, 0)) |
256 | goto error; | 265 | goto error; |