diff options
56 files changed, 716 insertions, 546 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; |
diff --git a/src/lib/libcrypto/dh/dh_gen.c b/src/lib/libcrypto/dh/dh_gen.c index 1bc37b987e..de566802d3 100644 --- a/src/lib/libcrypto/dh/dh_gen.c +++ b/src/lib/libcrypto/dh/dh_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh_gen.c,v 1.14 2015/02/07 13:19:15 doug Exp $ */ | 1 | /* $OpenBSD: dh_gen.c,v 1.15 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 | * |
@@ -115,9 +115,9 @@ dh_builtin_genparams(DH *ret, int prime_len, int generator, BN_GENCB *cb) | |||
115 | if (ctx == NULL) | 115 | if (ctx == NULL) |
116 | goto err; | 116 | goto err; |
117 | BN_CTX_start(ctx); | 117 | BN_CTX_start(ctx); |
118 | t1 = BN_CTX_get(ctx); | 118 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
119 | t2 = BN_CTX_get(ctx); | 119 | goto err; |
120 | if (t1 == NULL || t2 == NULL) | 120 | if ((t2 = BN_CTX_get(ctx)) == NULL) |
121 | goto err; | 121 | goto err; |
122 | 122 | ||
123 | /* Make sure 'ret' has the necessary elements */ | 123 | /* Make sure 'ret' has the necessary elements */ |
diff --git a/src/lib/libcrypto/dh/dh_key.c b/src/lib/libcrypto/dh/dh_key.c index b8352149e2..31bc7b3dfd 100644 --- a/src/lib/libcrypto/dh/dh_key.c +++ b/src/lib/libcrypto/dh/dh_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh_key.c,v 1.22 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: dh_key.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 | * |
@@ -195,7 +195,8 @@ compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh) | |||
195 | if (ctx == NULL) | 195 | if (ctx == NULL) |
196 | goto err; | 196 | goto err; |
197 | BN_CTX_start(ctx); | 197 | BN_CTX_start(ctx); |
198 | tmp = BN_CTX_get(ctx); | 198 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
199 | goto err; | ||
199 | 200 | ||
200 | if (dh->priv_key == NULL) { | 201 | if (dh->priv_key == NULL) { |
201 | DHerr(DH_F_COMPUTE_KEY, DH_R_NO_PRIVATE_VALUE); | 202 | DHerr(DH_F_COMPUTE_KEY, DH_R_NO_PRIVATE_VALUE); |
diff --git a/src/lib/libcrypto/dsa/dsa_gen.c b/src/lib/libcrypto/dsa/dsa_gen.c index 296a544c31..dcfa957884 100644 --- a/src/lib/libcrypto/dsa/dsa_gen.c +++ b/src/lib/libcrypto/dsa/dsa_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dsa_gen.c,v 1.17 2014/10/22 13:02:04 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_gen.c,v 1.18 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 | * |
@@ -148,14 +148,22 @@ dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd, | |||
148 | goto err; | 148 | goto err; |
149 | 149 | ||
150 | BN_CTX_start(ctx); | 150 | BN_CTX_start(ctx); |
151 | r0 = BN_CTX_get(ctx); | 151 | if ((r0 = BN_CTX_get(ctx)) == NULL) |
152 | g = BN_CTX_get(ctx); | 152 | goto err; |
153 | W = BN_CTX_get(ctx); | 153 | if ((g = BN_CTX_get(ctx)) == NULL) |
154 | q = BN_CTX_get(ctx); | 154 | goto err; |
155 | X = BN_CTX_get(ctx); | 155 | if ((W = BN_CTX_get(ctx)) == NULL) |
156 | c = BN_CTX_get(ctx); | 156 | goto err; |
157 | p = BN_CTX_get(ctx); | 157 | if ((q = BN_CTX_get(ctx)) == NULL) |
158 | test = BN_CTX_get(ctx); | 158 | goto err; |
159 | if ((X = BN_CTX_get(ctx)) == NULL) | ||
160 | goto err; | ||
161 | if ((c = BN_CTX_get(ctx)) == NULL) | ||
162 | goto err; | ||
163 | if ((p = BN_CTX_get(ctx)) == NULL) | ||
164 | goto err; | ||
165 | if ((test = BN_CTX_get(ctx)) == NULL) | ||
166 | goto err; | ||
159 | 167 | ||
160 | if (!BN_lshift(test, BN_value_one(), bits - 1)) | 168 | if (!BN_lshift(test, BN_value_one(), bits - 1)) |
161 | goto err; | 169 | goto err; |
diff --git a/src/lib/libcrypto/ec/ec2_mult.c b/src/lib/libcrypto/ec/ec2_mult.c index dd113907be..8f0091efe1 100644 --- a/src/lib/libcrypto/ec/ec2_mult.c +++ b/src/lib/libcrypto/ec/ec2_mult.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec2_mult.c,v 1.6 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec2_mult.c,v 1.7 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 | * |
@@ -91,8 +91,7 @@ gf2m_Mdouble(const EC_GROUP *group, BIGNUM *x, BIGNUM *z, BN_CTX *ctx) | |||
91 | 91 | ||
92 | /* Since Mdouble is static we can guarantee that ctx != NULL. */ | 92 | /* Since Mdouble is static we can guarantee that ctx != NULL. */ |
93 | BN_CTX_start(ctx); | 93 | BN_CTX_start(ctx); |
94 | t1 = BN_CTX_get(ctx); | 94 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
95 | if (t1 == NULL) | ||
96 | goto err; | 95 | goto err; |
97 | 96 | ||
98 | if (!group->meth->field_sqr(group, x, x, ctx)) | 97 | if (!group->meth->field_sqr(group, x, x, ctx)) |
@@ -132,9 +131,9 @@ gf2m_Madd(const EC_GROUP *group, const BIGNUM *x, BIGNUM *x1, BIGNUM *z1, | |||
132 | 131 | ||
133 | /* Since Madd is static we can guarantee that ctx != NULL. */ | 132 | /* Since Madd is static we can guarantee that ctx != NULL. */ |
134 | BN_CTX_start(ctx); | 133 | BN_CTX_start(ctx); |
135 | t1 = BN_CTX_get(ctx); | 134 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
136 | t2 = BN_CTX_get(ctx); | 135 | goto err; |
137 | if (t2 == NULL) | 136 | if ((t2 = BN_CTX_get(ctx)) == NULL) |
138 | goto err; | 137 | goto err; |
139 | 138 | ||
140 | if (!BN_copy(t1, x)) | 139 | if (!BN_copy(t1, x)) |
@@ -191,10 +190,11 @@ gf2m_Mxy(const EC_GROUP *group, const BIGNUM *x, const BIGNUM *y, BIGNUM *x1, | |||
191 | } | 190 | } |
192 | /* Since Mxy is static we can guarantee that ctx != NULL. */ | 191 | /* Since Mxy is static we can guarantee that ctx != NULL. */ |
193 | BN_CTX_start(ctx); | 192 | BN_CTX_start(ctx); |
194 | t3 = BN_CTX_get(ctx); | 193 | if ((t3 = BN_CTX_get(ctx)) == NULL) |
195 | t4 = BN_CTX_get(ctx); | 194 | goto err; |
196 | t5 = BN_CTX_get(ctx); | 195 | if ((t4 = BN_CTX_get(ctx)) == NULL) |
197 | if (t5 == NULL) | 196 | goto err; |
197 | if ((t5 = BN_CTX_get(ctx)) == NULL) | ||
198 | goto err; | 198 | goto err; |
199 | 199 | ||
200 | if (!BN_one(t5)) | 200 | if (!BN_one(t5)) |
@@ -281,9 +281,9 @@ ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r, | |||
281 | 281 | ||
282 | /* Since point_multiply is static we can guarantee that ctx != NULL. */ | 282 | /* Since point_multiply is static we can guarantee that ctx != NULL. */ |
283 | BN_CTX_start(ctx); | 283 | BN_CTX_start(ctx); |
284 | x1 = BN_CTX_get(ctx); | 284 | if ((x1 = BN_CTX_get(ctx)) == NULL) |
285 | z1 = BN_CTX_get(ctx); | 285 | goto err; |
286 | if (z1 == NULL) | 286 | if ((z1 = BN_CTX_get(ctx)) == NULL) |
287 | goto err; | 287 | goto err; |
288 | 288 | ||
289 | x2 = &r->X; | 289 | x2 = &r->X; |
diff --git a/src/lib/libcrypto/ec/ec2_oct.c b/src/lib/libcrypto/ec/ec2_oct.c index c45d9c2219..72690b1bc7 100644 --- a/src/lib/libcrypto/ec/ec2_oct.c +++ b/src/lib/libcrypto/ec/ec2_oct.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec2_oct.c,v 1.6 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec2_oct.c,v 1.7 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 | * |
@@ -109,11 +109,13 @@ ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *point | |||
109 | y_bit = (y_bit != 0) ? 1 : 0; | 109 | y_bit = (y_bit != 0) ? 1 : 0; |
110 | 110 | ||
111 | BN_CTX_start(ctx); | 111 | BN_CTX_start(ctx); |
112 | tmp = BN_CTX_get(ctx); | 112 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
113 | x = BN_CTX_get(ctx); | 113 | goto err; |
114 | y = BN_CTX_get(ctx); | 114 | if ((x = BN_CTX_get(ctx)) == NULL) |
115 | z = BN_CTX_get(ctx); | 115 | goto err; |
116 | if (z == NULL) | 116 | if ((y = BN_CTX_get(ctx)) == NULL) |
117 | goto err; | ||
118 | if ((z = BN_CTX_get(ctx)) == NULL) | ||
117 | goto err; | 119 | goto err; |
118 | 120 | ||
119 | if (!BN_GF2m_mod_arr(x, x_, group->poly)) | 121 | if (!BN_GF2m_mod_arr(x, x_, group->poly)) |
@@ -212,10 +214,11 @@ ec_GF2m_simple_point2oct(const EC_GROUP *group, const EC_POINT *point, | |||
212 | } | 214 | } |
213 | BN_CTX_start(ctx); | 215 | BN_CTX_start(ctx); |
214 | used_ctx = 1; | 216 | used_ctx = 1; |
215 | x = BN_CTX_get(ctx); | 217 | if ((x = BN_CTX_get(ctx)) == NULL) |
216 | y = BN_CTX_get(ctx); | 218 | goto err; |
217 | yxi = BN_CTX_get(ctx); | 219 | if ((y = BN_CTX_get(ctx)) == NULL) |
218 | if (yxi == NULL) | 220 | goto err; |
221 | if ((yxi = BN_CTX_get(ctx)) == NULL) | ||
219 | goto err; | 222 | goto err; |
220 | 223 | ||
221 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) | 224 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) |
@@ -329,10 +332,11 @@ ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, | |||
329 | return 0; | 332 | return 0; |
330 | } | 333 | } |
331 | BN_CTX_start(ctx); | 334 | BN_CTX_start(ctx); |
332 | x = BN_CTX_get(ctx); | 335 | if ((x = BN_CTX_get(ctx)) == NULL) |
333 | y = BN_CTX_get(ctx); | 336 | goto err; |
334 | yxi = BN_CTX_get(ctx); | 337 | if ((y = BN_CTX_get(ctx)) == NULL) |
335 | if (yxi == NULL) | 338 | goto err; |
339 | if ((yxi = BN_CTX_get(ctx)) == NULL) | ||
336 | goto err; | 340 | goto err; |
337 | 341 | ||
338 | if (!BN_bin2bn(buf + 1, field_len, x)) | 342 | if (!BN_bin2bn(buf + 1, field_len, x)) |
diff --git a/src/lib/libcrypto/ec/ec2_smpl.c b/src/lib/libcrypto/ec/ec2_smpl.c index b9c066c5c1..43f0afd5ae 100644 --- a/src/lib/libcrypto/ec/ec2_smpl.c +++ b/src/lib/libcrypto/ec/ec2_smpl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec2_smpl.c,v 1.13 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec2_smpl.c,v 1.14 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 | * |
@@ -291,8 +291,7 @@ ec_GF2m_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
291 | } | 291 | } |
292 | } | 292 | } |
293 | BN_CTX_start(ctx); | 293 | BN_CTX_start(ctx); |
294 | b = BN_CTX_get(ctx); | 294 | if ((b = BN_CTX_get(ctx)) == NULL) |
295 | if (b == NULL) | ||
296 | goto err; | 295 | goto err; |
297 | 296 | ||
298 | if (!BN_GF2m_mod_arr(b, &group->b, group->poly)) | 297 | if (!BN_GF2m_mod_arr(b, &group->b, group->poly)) |
@@ -464,15 +463,21 @@ ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, | |||
464 | return 0; | 463 | return 0; |
465 | } | 464 | } |
466 | BN_CTX_start(ctx); | 465 | BN_CTX_start(ctx); |
467 | x0 = BN_CTX_get(ctx); | 466 | if ((x0 = BN_CTX_get(ctx)) == NULL) |
468 | y0 = BN_CTX_get(ctx); | 467 | goto err; |
469 | x1 = BN_CTX_get(ctx); | 468 | if ((y0 = BN_CTX_get(ctx)) == NULL) |
470 | y1 = BN_CTX_get(ctx); | 469 | goto err; |
471 | x2 = BN_CTX_get(ctx); | 470 | if ((x1 = BN_CTX_get(ctx)) == NULL) |
472 | y2 = BN_CTX_get(ctx); | 471 | goto err; |
473 | s = BN_CTX_get(ctx); | 472 | if ((y1 = BN_CTX_get(ctx)) == NULL) |
474 | t = BN_CTX_get(ctx); | 473 | goto err; |
475 | if (t == NULL) | 474 | if ((x2 = BN_CTX_get(ctx)) == NULL) |
475 | goto err; | ||
476 | if ((y2 = BN_CTX_get(ctx)) == NULL) | ||
477 | goto err; | ||
478 | if ((s = BN_CTX_get(ctx)) == NULL) | ||
479 | goto err; | ||
480 | if ((t = BN_CTX_get(ctx)) == NULL) | ||
476 | goto err; | 481 | goto err; |
477 | 482 | ||
478 | if (a->Z_is_one) { | 483 | if (a->Z_is_one) { |
@@ -611,9 +616,9 @@ ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX | |||
611 | return -1; | 616 | return -1; |
612 | } | 617 | } |
613 | BN_CTX_start(ctx); | 618 | BN_CTX_start(ctx); |
614 | y2 = BN_CTX_get(ctx); | 619 | if ((y2 = BN_CTX_get(ctx)) == NULL) |
615 | lh = BN_CTX_get(ctx); | 620 | goto err; |
616 | if (lh == NULL) | 621 | if ((lh = BN_CTX_get(ctx)) == NULL) |
617 | goto err; | 622 | goto err; |
618 | 623 | ||
619 | /* | 624 | /* |
@@ -651,7 +656,8 @@ err: | |||
651 | * 1 not equal | 656 | * 1 not equal |
652 | */ | 657 | */ |
653 | int | 658 | int |
654 | ec_GF2m_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b, BN_CTX * ctx) | 659 | ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a, |
660 | const EC_POINT *b, BN_CTX *ctx) | ||
655 | { | 661 | { |
656 | BIGNUM *aX, *aY, *bX, *bY; | 662 | BIGNUM *aX, *aY, *bX, *bY; |
657 | BN_CTX *new_ctx = NULL; | 663 | BN_CTX *new_ctx = NULL; |
@@ -672,11 +678,13 @@ ec_GF2m_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * | |||
672 | return -1; | 678 | return -1; |
673 | } | 679 | } |
674 | BN_CTX_start(ctx); | 680 | BN_CTX_start(ctx); |
675 | aX = BN_CTX_get(ctx); | 681 | if ((aX = BN_CTX_get(ctx)) == NULL) |
676 | aY = BN_CTX_get(ctx); | 682 | goto err; |
677 | bX = BN_CTX_get(ctx); | 683 | if ((aY = BN_CTX_get(ctx)) == NULL) |
678 | bY = BN_CTX_get(ctx); | 684 | goto err; |
679 | if (bY == NULL) | 685 | if ((bX = BN_CTX_get(ctx)) == NULL) |
686 | goto err; | ||
687 | if ((bY = BN_CTX_get(ctx)) == NULL) | ||
680 | goto err; | 688 | goto err; |
681 | 689 | ||
682 | if (!EC_POINT_get_affine_coordinates_GF2m(group, a, aX, aY, ctx)) | 690 | if (!EC_POINT_get_affine_coordinates_GF2m(group, a, aX, aY, ctx)) |
@@ -710,9 +718,9 @@ ec_GF2m_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ct | |||
710 | return 0; | 718 | return 0; |
711 | } | 719 | } |
712 | BN_CTX_start(ctx); | 720 | BN_CTX_start(ctx); |
713 | x = BN_CTX_get(ctx); | 721 | if ((x = BN_CTX_get(ctx)) == NULL) |
714 | y = BN_CTX_get(ctx); | 722 | goto err; |
715 | if (y == NULL) | 723 | if ((y = BN_CTX_get(ctx)) == NULL) |
716 | goto err; | 724 | goto err; |
717 | 725 | ||
718 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) | 726 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) |
diff --git a/src/lib/libcrypto/ec/ec_key.c b/src/lib/libcrypto/ec/ec_key.c index f9904b4ee9..45192c3231 100644 --- a/src/lib/libcrypto/ec/ec_key.c +++ b/src/lib/libcrypto/ec/ec_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_key.c,v 1.10 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec_key.c,v 1.11 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -359,8 +359,11 @@ EC_KEY_set_public_key_affine_coordinates(EC_KEY * key, BIGNUM * x, BIGNUM * y) | |||
359 | if (tmp_nid == NID_X9_62_characteristic_two_field) | 359 | if (tmp_nid == NID_X9_62_characteristic_two_field) |
360 | is_char_two = 1; | 360 | is_char_two = 1; |
361 | 361 | ||
362 | tx = BN_CTX_get(ctx); | 362 | if ((tx = BN_CTX_get(ctx)) == NULL) |
363 | ty = BN_CTX_get(ctx); | 363 | goto err; |
364 | if ((ty = BN_CTX_get(ctx)) == NULL) | ||
365 | goto err; | ||
366 | |||
364 | #ifndef OPENSSL_NO_EC2M | 367 | #ifndef OPENSSL_NO_EC2M |
365 | if (is_char_two) { | 368 | if (is_char_two) { |
366 | if (!EC_POINT_set_affine_coordinates_GF2m(key->group, point, | 369 | if (!EC_POINT_set_affine_coordinates_GF2m(key->group, point, |
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c index 47ccc614d1..8cf0f2241e 100644 --- a/src/lib/libcrypto/ec/ec_lib.c +++ b/src/lib/libcrypto/ec/ec_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_lib.c,v 1.15 2014/07/12 16:03:37 miod Exp $ */ | 1 | /* $OpenBSD: ec_lib.c,v 1.16 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -497,18 +497,19 @@ EC_GROUP_cmp(const EC_GROUP * a, const EC_GROUP * b, BN_CTX * ctx) | |||
497 | return -1; | 497 | return -1; |
498 | 498 | ||
499 | BN_CTX_start(ctx); | 499 | BN_CTX_start(ctx); |
500 | a1 = BN_CTX_get(ctx); | 500 | if ((a1 = BN_CTX_get(ctx)) == NULL) |
501 | a2 = BN_CTX_get(ctx); | 501 | goto err; |
502 | a3 = BN_CTX_get(ctx); | 502 | if ((a2 = BN_CTX_get(ctx)) == NULL) |
503 | b1 = BN_CTX_get(ctx); | 503 | goto err; |
504 | b2 = BN_CTX_get(ctx); | 504 | if ((a3 = BN_CTX_get(ctx)) == NULL) |
505 | b3 = BN_CTX_get(ctx); | 505 | goto err; |
506 | if (!b3) { | 506 | if ((b1 = BN_CTX_get(ctx)) == NULL) |
507 | BN_CTX_end(ctx); | 507 | goto err; |
508 | if (ctx_new) | 508 | if ((b2 = BN_CTX_get(ctx)) == NULL) |
509 | BN_CTX_free(ctx); | 509 | goto err; |
510 | return -1; | 510 | if ((b3 = BN_CTX_get(ctx)) == NULL) |
511 | } | 511 | goto err; |
512 | |||
512 | /* | 513 | /* |
513 | * XXX This approach assumes that the external representation of | 514 | * XXX This approach assumes that the external representation of |
514 | * curves over the same field type is the same. | 515 | * curves over the same field type is the same. |
@@ -544,6 +545,12 @@ EC_GROUP_cmp(const EC_GROUP * a, const EC_GROUP * b, BN_CTX * ctx) | |||
544 | BN_CTX_free(ctx); | 545 | BN_CTX_free(ctx); |
545 | 546 | ||
546 | return r; | 547 | return r; |
548 | |||
549 | err: | ||
550 | BN_CTX_end(ctx); | ||
551 | if (ctx_new) | ||
552 | BN_CTX_free(ctx); | ||
553 | return -1; | ||
547 | } | 554 | } |
548 | 555 | ||
549 | 556 | ||
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c index 9e3aee13a2..e711413598 100644 --- a/src/lib/libcrypto/ec/ec_mult.c +++ b/src/lib/libcrypto/ec/ec_mult.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_mult.c,v 1.16 2015/02/07 13:19:15 doug Exp $ */ | 1 | /* $OpenBSD: ec_mult.c,v 1.17 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. | 3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -753,8 +753,7 @@ ec_wNAF_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
753 | goto err; | 753 | goto err; |
754 | } | 754 | } |
755 | BN_CTX_start(ctx); | 755 | BN_CTX_start(ctx); |
756 | order = BN_CTX_get(ctx); | 756 | if ((order = BN_CTX_get(ctx)) == NULL) |
757 | if (order == NULL) | ||
758 | goto err; | 757 | goto err; |
759 | 758 | ||
760 | if (!EC_GROUP_get_order(group, order, ctx)) | 759 | if (!EC_GROUP_get_order(group, order, ctx)) |
diff --git a/src/lib/libcrypto/ec/ecp_oct.c b/src/lib/libcrypto/ec/ecp_oct.c index abc31e6382..994f0b08b1 100644 --- a/src/lib/libcrypto/ec/ecp_oct.c +++ b/src/lib/libcrypto/ec/ecp_oct.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecp_oct.c,v 1.6 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ecp_oct.c,v 1.7 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
3 | * for the OpenSSL project. | 3 | * for the OpenSSL project. |
4 | * Includes code written by Bodo Moeller for the OpenSSL project. | 4 | * Includes code written by Bodo Moeller for the OpenSSL project. |
@@ -67,8 +67,8 @@ | |||
67 | #include "ec_lcl.h" | 67 | #include "ec_lcl.h" |
68 | 68 | ||
69 | int | 69 | int |
70 | ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, EC_POINT * point, | 70 | ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, |
71 | const BIGNUM * x_, int y_bit, BN_CTX * ctx) | 71 | EC_POINT * point, const BIGNUM * x_, int y_bit, BN_CTX * ctx) |
72 | { | 72 | { |
73 | BN_CTX *new_ctx = NULL; | 73 | BN_CTX *new_ctx = NULL; |
74 | BIGNUM *tmp1, *tmp2, *x, *y; | 74 | BIGNUM *tmp1, *tmp2, *x, *y; |
@@ -85,11 +85,13 @@ ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, EC_POINT * poin | |||
85 | y_bit = (y_bit != 0); | 85 | y_bit = (y_bit != 0); |
86 | 86 | ||
87 | BN_CTX_start(ctx); | 87 | BN_CTX_start(ctx); |
88 | tmp1 = BN_CTX_get(ctx); | 88 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
89 | tmp2 = BN_CTX_get(ctx); | 89 | goto err; |
90 | x = BN_CTX_get(ctx); | 90 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
91 | y = BN_CTX_get(ctx); | 91 | goto err; |
92 | if (y == NULL) | 92 | if ((x = BN_CTX_get(ctx)) == NULL) |
93 | goto err; | ||
94 | if ((y = BN_CTX_get(ctx)) == NULL) | ||
93 | goto err; | 95 | goto err; |
94 | 96 | ||
95 | /* | 97 | /* |
@@ -239,9 +241,9 @@ ec_GFp_simple_point2oct(const EC_GROUP * group, const EC_POINT * point, point_co | |||
239 | } | 241 | } |
240 | BN_CTX_start(ctx); | 242 | BN_CTX_start(ctx); |
241 | used_ctx = 1; | 243 | used_ctx = 1; |
242 | x = BN_CTX_get(ctx); | 244 | if ((x = BN_CTX_get(ctx)) == NULL) |
243 | y = BN_CTX_get(ctx); | 245 | goto err; |
244 | if (y == NULL) | 246 | if ((y = BN_CTX_get(ctx)) == NULL) |
245 | goto err; | 247 | goto err; |
246 | 248 | ||
247 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) | 249 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) |
@@ -348,9 +350,9 @@ ec_GFp_simple_oct2point(const EC_GROUP * group, EC_POINT * point, | |||
348 | return 0; | 350 | return 0; |
349 | } | 351 | } |
350 | BN_CTX_start(ctx); | 352 | BN_CTX_start(ctx); |
351 | x = BN_CTX_get(ctx); | 353 | if ((x = BN_CTX_get(ctx)) == NULL) |
352 | y = BN_CTX_get(ctx); | 354 | goto err; |
353 | if (y == NULL) | 355 | if ((y = BN_CTX_get(ctx)) == NULL) |
354 | goto err; | 356 | goto err; |
355 | 357 | ||
356 | if (!BN_bin2bn(buf + 1, field_len, x)) | 358 | if (!BN_bin2bn(buf + 1, field_len, x)) |
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c index 7b3bb2364d..f6db4dc9b1 100644 --- a/src/lib/libcrypto/ec/ecp_smpl.c +++ b/src/lib/libcrypto/ec/ecp_smpl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecp_smpl.c,v 1.14 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ecp_smpl.c,v 1.15 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
3 | * for the OpenSSL project. | 3 | * for the OpenSSL project. |
4 | * Includes code written by Bodo Moeller for the OpenSSL project. | 4 | * Includes code written by Bodo Moeller for the OpenSSL project. |
@@ -188,8 +188,7 @@ ec_GFp_simple_group_set_curve(EC_GROUP * group, | |||
188 | return 0; | 188 | return 0; |
189 | } | 189 | } |
190 | BN_CTX_start(ctx); | 190 | BN_CTX_start(ctx); |
191 | tmp_a = BN_CTX_get(ctx); | 191 | if ((tmp_a = BN_CTX_get(ctx)) == NULL) |
192 | if (tmp_a == NULL) | ||
193 | goto err; | 192 | goto err; |
194 | 193 | ||
195 | /* group->field */ | 194 | /* group->field */ |
@@ -294,12 +293,15 @@ ec_GFp_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
294 | } | 293 | } |
295 | } | 294 | } |
296 | BN_CTX_start(ctx); | 295 | BN_CTX_start(ctx); |
297 | a = BN_CTX_get(ctx); | 296 | if ((a = BN_CTX_get(ctx)) == NULL) |
298 | b = BN_CTX_get(ctx); | 297 | goto err; |
299 | tmp_1 = BN_CTX_get(ctx); | 298 | if ((b = BN_CTX_get(ctx)) == NULL) |
300 | tmp_2 = BN_CTX_get(ctx); | 299 | goto err; |
301 | order = BN_CTX_get(ctx); | 300 | if ((tmp_1 = BN_CTX_get(ctx)) == NULL) |
302 | if (order == NULL) | 301 | goto err; |
302 | if ((tmp_2 = BN_CTX_get(ctx)) == NULL) | ||
303 | goto err; | ||
304 | if ((order = BN_CTX_get(ctx)) == NULL) | ||
303 | goto err; | 305 | goto err; |
304 | 306 | ||
305 | if (group->meth->field_decode) { | 307 | if (group->meth->field_decode) { |
@@ -539,11 +541,13 @@ ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP * group, const EC_POIN | |||
539 | return 0; | 541 | return 0; |
540 | } | 542 | } |
541 | BN_CTX_start(ctx); | 543 | BN_CTX_start(ctx); |
542 | Z = BN_CTX_get(ctx); | 544 | if ((Z = BN_CTX_get(ctx)) == NULL) |
543 | Z_1 = BN_CTX_get(ctx); | 545 | goto err; |
544 | Z_2 = BN_CTX_get(ctx); | 546 | if ((Z_1 = BN_CTX_get(ctx)) == NULL) |
545 | Z_3 = BN_CTX_get(ctx); | 547 | goto err; |
546 | if (Z_3 == NULL) | 548 | if ((Z_2 = BN_CTX_get(ctx)) == NULL) |
549 | goto err; | ||
550 | if ((Z_3 = BN_CTX_get(ctx)) == NULL) | ||
547 | goto err; | 551 | goto err; |
548 | 552 | ||
549 | /* transform (X, Y, Z) into (x, y) := (X/Z^2, Y/Z^3) */ | 553 | /* transform (X, Y, Z) into (x, y) := (X/Z^2, Y/Z^3) */ |
@@ -652,14 +656,19 @@ ec_GFp_simple_add(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, cons | |||
652 | return 0; | 656 | return 0; |
653 | } | 657 | } |
654 | BN_CTX_start(ctx); | 658 | BN_CTX_start(ctx); |
655 | n0 = BN_CTX_get(ctx); | 659 | if ((n0 = BN_CTX_get(ctx)) == NULL) |
656 | n1 = BN_CTX_get(ctx); | 660 | goto end; |
657 | n2 = BN_CTX_get(ctx); | 661 | if ((n1 = BN_CTX_get(ctx)) == NULL) |
658 | n3 = BN_CTX_get(ctx); | 662 | goto end; |
659 | n4 = BN_CTX_get(ctx); | 663 | if ((n2 = BN_CTX_get(ctx)) == NULL) |
660 | n5 = BN_CTX_get(ctx); | 664 | goto end; |
661 | n6 = BN_CTX_get(ctx); | 665 | if ((n3 = BN_CTX_get(ctx)) == NULL) |
662 | if (n6 == NULL) | 666 | goto end; |
667 | if ((n4 = BN_CTX_get(ctx)) == NULL) | ||
668 | goto end; | ||
669 | if ((n5 = BN_CTX_get(ctx)) == NULL) | ||
670 | goto end; | ||
671 | if ((n6 = BN_CTX_get(ctx)) == NULL) | ||
663 | goto end; | 672 | goto end; |
664 | 673 | ||
665 | /* | 674 | /* |
@@ -834,11 +843,13 @@ ec_GFp_simple_dbl(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, BN_C | |||
834 | return 0; | 843 | return 0; |
835 | } | 844 | } |
836 | BN_CTX_start(ctx); | 845 | BN_CTX_start(ctx); |
837 | n0 = BN_CTX_get(ctx); | 846 | if ((n0 = BN_CTX_get(ctx)) == NULL) |
838 | n1 = BN_CTX_get(ctx); | 847 | goto err; |
839 | n2 = BN_CTX_get(ctx); | 848 | if ((n1 = BN_CTX_get(ctx)) == NULL) |
840 | n3 = BN_CTX_get(ctx); | 849 | goto err; |
841 | if (n3 == NULL) | 850 | if ((n2 = BN_CTX_get(ctx)) == NULL) |
851 | goto err; | ||
852 | if ((n3 = BN_CTX_get(ctx)) == NULL) | ||
842 | goto err; | 853 | goto err; |
843 | 854 | ||
844 | /* | 855 | /* |
@@ -990,11 +1001,13 @@ ec_GFp_simple_is_on_curve(const EC_GROUP * group, const EC_POINT * point, BN_CTX | |||
990 | return -1; | 1001 | return -1; |
991 | } | 1002 | } |
992 | BN_CTX_start(ctx); | 1003 | BN_CTX_start(ctx); |
993 | rh = BN_CTX_get(ctx); | 1004 | if ((rh = BN_CTX_get(ctx)) == NULL) |
994 | tmp = BN_CTX_get(ctx); | 1005 | goto err; |
995 | Z4 = BN_CTX_get(ctx); | 1006 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
996 | Z6 = BN_CTX_get(ctx); | 1007 | goto err; |
997 | if (Z6 == NULL) | 1008 | if ((Z4 = BN_CTX_get(ctx)) == NULL) |
1009 | goto err; | ||
1010 | if ((Z6 = BN_CTX_get(ctx)) == NULL) | ||
998 | goto err; | 1011 | goto err; |
999 | 1012 | ||
1000 | /* | 1013 | /* |
@@ -1101,11 +1114,13 @@ ec_GFp_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b | |||
1101 | return -1; | 1114 | return -1; |
1102 | } | 1115 | } |
1103 | BN_CTX_start(ctx); | 1116 | BN_CTX_start(ctx); |
1104 | tmp1 = BN_CTX_get(ctx); | 1117 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
1105 | tmp2 = BN_CTX_get(ctx); | 1118 | goto end; |
1106 | Za23 = BN_CTX_get(ctx); | 1119 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
1107 | Zb23 = BN_CTX_get(ctx); | 1120 | goto end; |
1108 | if (Zb23 == NULL) | 1121 | if ((Za23 = BN_CTX_get(ctx)) == NULL) |
1122 | goto end; | ||
1123 | if ((Zb23 = BN_CTX_get(ctx)) == NULL) | ||
1109 | goto end; | 1124 | goto end; |
1110 | 1125 | ||
1111 | /* | 1126 | /* |
@@ -1184,9 +1199,9 @@ ec_GFp_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ctx | |||
1184 | return 0; | 1199 | return 0; |
1185 | } | 1200 | } |
1186 | BN_CTX_start(ctx); | 1201 | BN_CTX_start(ctx); |
1187 | x = BN_CTX_get(ctx); | 1202 | if ((x = BN_CTX_get(ctx)) == NULL) |
1188 | y = BN_CTX_get(ctx); | 1203 | goto err; |
1189 | if (y == NULL) | 1204 | if ((y = BN_CTX_get(ctx)) == NULL) |
1190 | goto err; | 1205 | goto err; |
1191 | 1206 | ||
1192 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) | 1207 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) |
@@ -1225,9 +1240,9 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT * | |||
1225 | return 0; | 1240 | return 0; |
1226 | } | 1241 | } |
1227 | BN_CTX_start(ctx); | 1242 | BN_CTX_start(ctx); |
1228 | tmp0 = BN_CTX_get(ctx); | 1243 | if ((tmp0 = BN_CTX_get(ctx)) == NULL) |
1229 | tmp1 = BN_CTX_get(ctx); | 1244 | goto err; |
1230 | if (tmp0 == NULL || tmp1 == NULL) | 1245 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
1231 | goto err; | 1246 | goto err; |
1232 | 1247 | ||
1233 | /* | 1248 | /* |
diff --git a/src/lib/libcrypto/ecdh/ech_ossl.c b/src/lib/libcrypto/ecdh/ech_ossl.c index ee130edeee..4fae7cacfd 100644 --- a/src/lib/libcrypto/ecdh/ech_ossl.c +++ b/src/lib/libcrypto/ecdh/ech_ossl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ech_ossl.c,v 1.8 2014/07/12 16:03:37 miod Exp $ */ | 1 | /* $OpenBSD: ech_ossl.c,v 1.9 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 | * |
@@ -120,8 +120,10 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
120 | 120 | ||
121 | if ((ctx = BN_CTX_new()) == NULL) goto err; | 121 | if ((ctx = BN_CTX_new()) == NULL) goto err; |
122 | BN_CTX_start(ctx); | 122 | BN_CTX_start(ctx); |
123 | x = BN_CTX_get(ctx); | 123 | if ((x = BN_CTX_get(ctx)) == NULL) |
124 | y = BN_CTX_get(ctx); | 124 | goto err; |
125 | if ((y = BN_CTX_get(ctx)) == NULL) | ||
126 | goto err; | ||
125 | 127 | ||
126 | priv_key = EC_KEY_get0_private_key(ecdh); | 128 | priv_key = EC_KEY_get0_private_key(ecdh); |
127 | if (priv_key == NULL) | 129 | if (priv_key == NULL) |
diff --git a/src/lib/libcrypto/engine/eng_rsax.c b/src/lib/libcrypto/engine/eng_rsax.c index c33a776707..784b74a22f 100644 --- a/src/lib/libcrypto/engine/eng_rsax.c +++ b/src/lib/libcrypto/engine/eng_rsax.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: eng_rsax.c,v 1.12 2014/11/19 13:35:37 krw Exp $ */ | 1 | /* $OpenBSD: eng_rsax.c,v 1.13 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (c) 2010-2010 Intel Corp. | 2 | /* Copyright (c) 2010-2010 Intel Corp. |
3 | * Author: Vinodh.Gopal@intel.com | 3 | * Author: Vinodh.Gopal@intel.com |
4 | * Jim Guilford | 4 | * Jim Guilford |
@@ -519,9 +519,12 @@ e_rsax_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
519 | int ret = 0; | 519 | int ret = 0; |
520 | 520 | ||
521 | BN_CTX_start(ctx); | 521 | BN_CTX_start(ctx); |
522 | r1 = BN_CTX_get(ctx); | 522 | if ((r1 = BN_CTX_get(ctx)) == NULL) |
523 | m1 = BN_CTX_get(ctx); | 523 | goto err; |
524 | vrfy = BN_CTX_get(ctx); | 524 | if ((m1 = BN_CTX_get(ctx)) == NULL) |
525 | goto err; | ||
526 | if ((vrfy = BN_CTX_get(ctx)) == NULL) | ||
527 | goto err; | ||
525 | 528 | ||
526 | { | 529 | { |
527 | BIGNUM local_p, local_q; | 530 | BIGNUM local_p, local_q; |
diff --git a/src/lib/libcrypto/rsa/rsa_crpt.c b/src/lib/libcrypto/rsa/rsa_crpt.c index b057dd2201..cf7f9a328b 100644 --- a/src/lib/libcrypto/rsa/rsa_crpt.c +++ b/src/lib/libcrypto/rsa/rsa_crpt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_crpt.c,v 1.12 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_crpt.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 | * |
@@ -145,10 +145,11 @@ rsa_get_public_exp(const BIGNUM *d, const BIGNUM *p, const BIGNUM *q, | |||
145 | return NULL; | 145 | return NULL; |
146 | 146 | ||
147 | BN_CTX_start(ctx); | 147 | BN_CTX_start(ctx); |
148 | r0 = BN_CTX_get(ctx); | 148 | if ((r0 = BN_CTX_get(ctx)) == NULL) |
149 | r1 = BN_CTX_get(ctx); | 149 | goto err; |
150 | r2 = BN_CTX_get(ctx); | 150 | if ((r1 = BN_CTX_get(ctx)) == NULL) |
151 | if (r2 == NULL) | 151 | goto err; |
152 | if ((r2 = BN_CTX_get(ctx)) == NULL) | ||
152 | goto err; | 153 | goto err; |
153 | 154 | ||
154 | if (!BN_sub(r1, p, BN_value_one())) | 155 | if (!BN_sub(r1, p, BN_value_one())) |
diff --git a/src/lib/libcrypto/rsa/rsa_eay.c b/src/lib/libcrypto/rsa/rsa_eay.c index f8031c87a2..0eb18cf3c7 100644 --- a/src/lib/libcrypto/rsa/rsa_eay.c +++ b/src/lib/libcrypto/rsa/rsa_eay.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_eay.c,v 1.36 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_eay.c,v 1.37 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 | * |
@@ -181,7 +181,7 @@ RSA_eay_public_encrypt(int flen, const unsigned char *from, unsigned char *to, | |||
181 | ret = BN_CTX_get(ctx); | 181 | ret = BN_CTX_get(ctx); |
182 | num = BN_num_bytes(rsa->n); | 182 | num = BN_num_bytes(rsa->n); |
183 | buf = malloc(num); | 183 | buf = malloc(num); |
184 | if (!f || !ret || !buf) { | 184 | if (f == NULL || ret == NULL || buf == NULL) { |
185 | RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, ERR_R_MALLOC_FAILURE); | 185 | RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, ERR_R_MALLOC_FAILURE); |
186 | goto err; | 186 | goto err; |
187 | } | 187 | } |
@@ -366,7 +366,7 @@ RSA_eay_private_encrypt(int flen, const unsigned char *from, unsigned char *to, | |||
366 | ret = BN_CTX_get(ctx); | 366 | ret = BN_CTX_get(ctx); |
367 | num = BN_num_bytes(rsa->n); | 367 | num = BN_num_bytes(rsa->n); |
368 | buf = malloc(num); | 368 | buf = malloc(num); |
369 | if (!f || !ret || !buf) { | 369 | if (f == NULL || ret == NULL || buf == NULL) { |
370 | RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT, ERR_R_MALLOC_FAILURE); | 370 | RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT, ERR_R_MALLOC_FAILURE); |
371 | goto err; | 371 | goto err; |
372 | } | 372 | } |
diff --git a/src/lib/libcrypto/rsa/rsa_gen.c b/src/lib/libcrypto/rsa/rsa_gen.c index a3b9da4856..f6f051c442 100644 --- a/src/lib/libcrypto/rsa/rsa_gen.c +++ b/src/lib/libcrypto/rsa/rsa_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_gen.c,v 1.16 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_gen.c,v 1.17 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 | * |
@@ -99,11 +99,13 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb) | |||
99 | if (ctx == NULL) | 99 | if (ctx == NULL) |
100 | goto err; | 100 | goto err; |
101 | BN_CTX_start(ctx); | 101 | BN_CTX_start(ctx); |
102 | r0 = BN_CTX_get(ctx); | 102 | if ((r0 = BN_CTX_get(ctx)) == NULL) |
103 | r1 = BN_CTX_get(ctx); | 103 | goto err; |
104 | r2 = BN_CTX_get(ctx); | 104 | if ((r1 = BN_CTX_get(ctx)) == NULL) |
105 | r3 = BN_CTX_get(ctx); | 105 | goto err; |
106 | if (r3 == NULL) | 106 | if ((r2 = BN_CTX_get(ctx)) == NULL) |
107 | goto err; | ||
108 | if ((r3 = BN_CTX_get(ctx)) == NULL) | ||
107 | goto err; | 109 | goto err; |
108 | 110 | ||
109 | bitsp = (bits + 1) / 2; | 111 | bitsp = (bits + 1) / 2; |
diff --git a/src/lib/libssl/src/crypto/bn/bn_div.c b/src/lib/libssl/src/crypto/bn/bn_div.c index f4deccf77f..fefc53f9fa 100644 --- a/src/lib/libssl/src/crypto/bn/bn_div.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_exp.c b/src/lib/libssl/src/crypto/bn/bn_exp.c index 1aa5503dae..eecab5163b 100644 --- a/src/lib/libssl/src/crypto/bn/bn_exp.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_exp2.c b/src/lib/libssl/src/crypto/bn/bn_exp2.c index c8f0294f7a..38bf467a38 100644 --- a/src/lib/libssl/src/crypto/bn/bn_exp2.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_gcd.c b/src/lib/libssl/src/crypto/bn/bn_gcd.c index 379bea99ad..da9c29a8e5 100644 --- a/src/lib/libssl/src/crypto/bn/bn_gcd.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_gf2m.c b/src/lib/libssl/src/crypto/bn/bn_gf2m.c index 1cd38c7797..4544369248 100644 --- a/src/lib/libssl/src/crypto/bn/bn_gf2m.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_kron.c b/src/lib/libssl/src/crypto/bn/bn_kron.c index 699cda55f0..274da5d186 100644 --- a/src/lib/libssl/src/crypto/bn/bn_kron.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_mont.c b/src/lib/libssl/src/crypto/bn/bn_mont.c index 5803ca493d..3eb9913a9e 100644 --- a/src/lib/libssl/src/crypto/bn/bn_mont.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_mul.c b/src/lib/libssl/src/crypto/bn/bn_mul.c index daba02d6ca..7794d59707 100644 --- a/src/lib/libssl/src/crypto/bn/bn_mul.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_prime.c b/src/lib/libssl/src/crypto/bn/bn_prime.c index e5cd315e47..02780d32e6 100644 --- a/src/lib/libssl/src/crypto/bn/bn_prime.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_sqr.c b/src/lib/libssl/src/crypto/bn/bn_sqr.c index 5ea9fb083d..a0dce6ea81 100644 --- a/src/lib/libssl/src/crypto/bn/bn_sqr.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_sqrt.c b/src/lib/libssl/src/crypto/bn/bn_sqrt.c index 9a59d56b3f..f94fa41094 100644 --- a/src/lib/libssl/src/crypto/bn/bn_sqrt.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_x931p.c b/src/lib/libssl/src/crypto/bn/bn_x931p.c index fc8d4c3c49..89c86c1ff7 100644 --- a/src/lib/libssl/src/crypto/bn/bn_x931p.c +++ b/src/lib/libssl/src/crypto/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; |
diff --git a/src/lib/libssl/src/crypto/dh/dh_gen.c b/src/lib/libssl/src/crypto/dh/dh_gen.c index 1bc37b987e..de566802d3 100644 --- a/src/lib/libssl/src/crypto/dh/dh_gen.c +++ b/src/lib/libssl/src/crypto/dh/dh_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh_gen.c,v 1.14 2015/02/07 13:19:15 doug Exp $ */ | 1 | /* $OpenBSD: dh_gen.c,v 1.15 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 | * |
@@ -115,9 +115,9 @@ dh_builtin_genparams(DH *ret, int prime_len, int generator, BN_GENCB *cb) | |||
115 | if (ctx == NULL) | 115 | if (ctx == NULL) |
116 | goto err; | 116 | goto err; |
117 | BN_CTX_start(ctx); | 117 | BN_CTX_start(ctx); |
118 | t1 = BN_CTX_get(ctx); | 118 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
119 | t2 = BN_CTX_get(ctx); | 119 | goto err; |
120 | if (t1 == NULL || t2 == NULL) | 120 | if ((t2 = BN_CTX_get(ctx)) == NULL) |
121 | goto err; | 121 | goto err; |
122 | 122 | ||
123 | /* Make sure 'ret' has the necessary elements */ | 123 | /* Make sure 'ret' has the necessary elements */ |
diff --git a/src/lib/libssl/src/crypto/dh/dh_key.c b/src/lib/libssl/src/crypto/dh/dh_key.c index b8352149e2..31bc7b3dfd 100644 --- a/src/lib/libssl/src/crypto/dh/dh_key.c +++ b/src/lib/libssl/src/crypto/dh/dh_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh_key.c,v 1.22 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: dh_key.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 | * |
@@ -195,7 +195,8 @@ compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh) | |||
195 | if (ctx == NULL) | 195 | if (ctx == NULL) |
196 | goto err; | 196 | goto err; |
197 | BN_CTX_start(ctx); | 197 | BN_CTX_start(ctx); |
198 | tmp = BN_CTX_get(ctx); | 198 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
199 | goto err; | ||
199 | 200 | ||
200 | if (dh->priv_key == NULL) { | 201 | if (dh->priv_key == NULL) { |
201 | DHerr(DH_F_COMPUTE_KEY, DH_R_NO_PRIVATE_VALUE); | 202 | DHerr(DH_F_COMPUTE_KEY, DH_R_NO_PRIVATE_VALUE); |
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_gen.c b/src/lib/libssl/src/crypto/dsa/dsa_gen.c index 296a544c31..dcfa957884 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_gen.c +++ b/src/lib/libssl/src/crypto/dsa/dsa_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dsa_gen.c,v 1.17 2014/10/22 13:02:04 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_gen.c,v 1.18 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 | * |
@@ -148,14 +148,22 @@ dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd, | |||
148 | goto err; | 148 | goto err; |
149 | 149 | ||
150 | BN_CTX_start(ctx); | 150 | BN_CTX_start(ctx); |
151 | r0 = BN_CTX_get(ctx); | 151 | if ((r0 = BN_CTX_get(ctx)) == NULL) |
152 | g = BN_CTX_get(ctx); | 152 | goto err; |
153 | W = BN_CTX_get(ctx); | 153 | if ((g = BN_CTX_get(ctx)) == NULL) |
154 | q = BN_CTX_get(ctx); | 154 | goto err; |
155 | X = BN_CTX_get(ctx); | 155 | if ((W = BN_CTX_get(ctx)) == NULL) |
156 | c = BN_CTX_get(ctx); | 156 | goto err; |
157 | p = BN_CTX_get(ctx); | 157 | if ((q = BN_CTX_get(ctx)) == NULL) |
158 | test = BN_CTX_get(ctx); | 158 | goto err; |
159 | if ((X = BN_CTX_get(ctx)) == NULL) | ||
160 | goto err; | ||
161 | if ((c = BN_CTX_get(ctx)) == NULL) | ||
162 | goto err; | ||
163 | if ((p = BN_CTX_get(ctx)) == NULL) | ||
164 | goto err; | ||
165 | if ((test = BN_CTX_get(ctx)) == NULL) | ||
166 | goto err; | ||
159 | 167 | ||
160 | if (!BN_lshift(test, BN_value_one(), bits - 1)) | 168 | if (!BN_lshift(test, BN_value_one(), bits - 1)) |
161 | goto err; | 169 | goto err; |
diff --git a/src/lib/libssl/src/crypto/ec/ec2_mult.c b/src/lib/libssl/src/crypto/ec/ec2_mult.c index dd113907be..8f0091efe1 100644 --- a/src/lib/libssl/src/crypto/ec/ec2_mult.c +++ b/src/lib/libssl/src/crypto/ec/ec2_mult.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec2_mult.c,v 1.6 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec2_mult.c,v 1.7 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 | * |
@@ -91,8 +91,7 @@ gf2m_Mdouble(const EC_GROUP *group, BIGNUM *x, BIGNUM *z, BN_CTX *ctx) | |||
91 | 91 | ||
92 | /* Since Mdouble is static we can guarantee that ctx != NULL. */ | 92 | /* Since Mdouble is static we can guarantee that ctx != NULL. */ |
93 | BN_CTX_start(ctx); | 93 | BN_CTX_start(ctx); |
94 | t1 = BN_CTX_get(ctx); | 94 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
95 | if (t1 == NULL) | ||
96 | goto err; | 95 | goto err; |
97 | 96 | ||
98 | if (!group->meth->field_sqr(group, x, x, ctx)) | 97 | if (!group->meth->field_sqr(group, x, x, ctx)) |
@@ -132,9 +131,9 @@ gf2m_Madd(const EC_GROUP *group, const BIGNUM *x, BIGNUM *x1, BIGNUM *z1, | |||
132 | 131 | ||
133 | /* Since Madd is static we can guarantee that ctx != NULL. */ | 132 | /* Since Madd is static we can guarantee that ctx != NULL. */ |
134 | BN_CTX_start(ctx); | 133 | BN_CTX_start(ctx); |
135 | t1 = BN_CTX_get(ctx); | 134 | if ((t1 = BN_CTX_get(ctx)) == NULL) |
136 | t2 = BN_CTX_get(ctx); | 135 | goto err; |
137 | if (t2 == NULL) | 136 | if ((t2 = BN_CTX_get(ctx)) == NULL) |
138 | goto err; | 137 | goto err; |
139 | 138 | ||
140 | if (!BN_copy(t1, x)) | 139 | if (!BN_copy(t1, x)) |
@@ -191,10 +190,11 @@ gf2m_Mxy(const EC_GROUP *group, const BIGNUM *x, const BIGNUM *y, BIGNUM *x1, | |||
191 | } | 190 | } |
192 | /* Since Mxy is static we can guarantee that ctx != NULL. */ | 191 | /* Since Mxy is static we can guarantee that ctx != NULL. */ |
193 | BN_CTX_start(ctx); | 192 | BN_CTX_start(ctx); |
194 | t3 = BN_CTX_get(ctx); | 193 | if ((t3 = BN_CTX_get(ctx)) == NULL) |
195 | t4 = BN_CTX_get(ctx); | 194 | goto err; |
196 | t5 = BN_CTX_get(ctx); | 195 | if ((t4 = BN_CTX_get(ctx)) == NULL) |
197 | if (t5 == NULL) | 196 | goto err; |
197 | if ((t5 = BN_CTX_get(ctx)) == NULL) | ||
198 | goto err; | 198 | goto err; |
199 | 199 | ||
200 | if (!BN_one(t5)) | 200 | if (!BN_one(t5)) |
@@ -281,9 +281,9 @@ ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r, | |||
281 | 281 | ||
282 | /* Since point_multiply is static we can guarantee that ctx != NULL. */ | 282 | /* Since point_multiply is static we can guarantee that ctx != NULL. */ |
283 | BN_CTX_start(ctx); | 283 | BN_CTX_start(ctx); |
284 | x1 = BN_CTX_get(ctx); | 284 | if ((x1 = BN_CTX_get(ctx)) == NULL) |
285 | z1 = BN_CTX_get(ctx); | 285 | goto err; |
286 | if (z1 == NULL) | 286 | if ((z1 = BN_CTX_get(ctx)) == NULL) |
287 | goto err; | 287 | goto err; |
288 | 288 | ||
289 | x2 = &r->X; | 289 | x2 = &r->X; |
diff --git a/src/lib/libssl/src/crypto/ec/ec2_oct.c b/src/lib/libssl/src/crypto/ec/ec2_oct.c index c45d9c2219..72690b1bc7 100644 --- a/src/lib/libssl/src/crypto/ec/ec2_oct.c +++ b/src/lib/libssl/src/crypto/ec/ec2_oct.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec2_oct.c,v 1.6 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec2_oct.c,v 1.7 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 | * |
@@ -109,11 +109,13 @@ ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *point | |||
109 | y_bit = (y_bit != 0) ? 1 : 0; | 109 | y_bit = (y_bit != 0) ? 1 : 0; |
110 | 110 | ||
111 | BN_CTX_start(ctx); | 111 | BN_CTX_start(ctx); |
112 | tmp = BN_CTX_get(ctx); | 112 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
113 | x = BN_CTX_get(ctx); | 113 | goto err; |
114 | y = BN_CTX_get(ctx); | 114 | if ((x = BN_CTX_get(ctx)) == NULL) |
115 | z = BN_CTX_get(ctx); | 115 | goto err; |
116 | if (z == NULL) | 116 | if ((y = BN_CTX_get(ctx)) == NULL) |
117 | goto err; | ||
118 | if ((z = BN_CTX_get(ctx)) == NULL) | ||
117 | goto err; | 119 | goto err; |
118 | 120 | ||
119 | if (!BN_GF2m_mod_arr(x, x_, group->poly)) | 121 | if (!BN_GF2m_mod_arr(x, x_, group->poly)) |
@@ -212,10 +214,11 @@ ec_GF2m_simple_point2oct(const EC_GROUP *group, const EC_POINT *point, | |||
212 | } | 214 | } |
213 | BN_CTX_start(ctx); | 215 | BN_CTX_start(ctx); |
214 | used_ctx = 1; | 216 | used_ctx = 1; |
215 | x = BN_CTX_get(ctx); | 217 | if ((x = BN_CTX_get(ctx)) == NULL) |
216 | y = BN_CTX_get(ctx); | 218 | goto err; |
217 | yxi = BN_CTX_get(ctx); | 219 | if ((y = BN_CTX_get(ctx)) == NULL) |
218 | if (yxi == NULL) | 220 | goto err; |
221 | if ((yxi = BN_CTX_get(ctx)) == NULL) | ||
219 | goto err; | 222 | goto err; |
220 | 223 | ||
221 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) | 224 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) |
@@ -329,10 +332,11 @@ ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, | |||
329 | return 0; | 332 | return 0; |
330 | } | 333 | } |
331 | BN_CTX_start(ctx); | 334 | BN_CTX_start(ctx); |
332 | x = BN_CTX_get(ctx); | 335 | if ((x = BN_CTX_get(ctx)) == NULL) |
333 | y = BN_CTX_get(ctx); | 336 | goto err; |
334 | yxi = BN_CTX_get(ctx); | 337 | if ((y = BN_CTX_get(ctx)) == NULL) |
335 | if (yxi == NULL) | 338 | goto err; |
339 | if ((yxi = BN_CTX_get(ctx)) == NULL) | ||
336 | goto err; | 340 | goto err; |
337 | 341 | ||
338 | if (!BN_bin2bn(buf + 1, field_len, x)) | 342 | if (!BN_bin2bn(buf + 1, field_len, x)) |
diff --git a/src/lib/libssl/src/crypto/ec/ec2_smpl.c b/src/lib/libssl/src/crypto/ec/ec2_smpl.c index b9c066c5c1..43f0afd5ae 100644 --- a/src/lib/libssl/src/crypto/ec/ec2_smpl.c +++ b/src/lib/libssl/src/crypto/ec/ec2_smpl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec2_smpl.c,v 1.13 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec2_smpl.c,v 1.14 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 | * |
@@ -291,8 +291,7 @@ ec_GF2m_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
291 | } | 291 | } |
292 | } | 292 | } |
293 | BN_CTX_start(ctx); | 293 | BN_CTX_start(ctx); |
294 | b = BN_CTX_get(ctx); | 294 | if ((b = BN_CTX_get(ctx)) == NULL) |
295 | if (b == NULL) | ||
296 | goto err; | 295 | goto err; |
297 | 296 | ||
298 | if (!BN_GF2m_mod_arr(b, &group->b, group->poly)) | 297 | if (!BN_GF2m_mod_arr(b, &group->b, group->poly)) |
@@ -464,15 +463,21 @@ ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, | |||
464 | return 0; | 463 | return 0; |
465 | } | 464 | } |
466 | BN_CTX_start(ctx); | 465 | BN_CTX_start(ctx); |
467 | x0 = BN_CTX_get(ctx); | 466 | if ((x0 = BN_CTX_get(ctx)) == NULL) |
468 | y0 = BN_CTX_get(ctx); | 467 | goto err; |
469 | x1 = BN_CTX_get(ctx); | 468 | if ((y0 = BN_CTX_get(ctx)) == NULL) |
470 | y1 = BN_CTX_get(ctx); | 469 | goto err; |
471 | x2 = BN_CTX_get(ctx); | 470 | if ((x1 = BN_CTX_get(ctx)) == NULL) |
472 | y2 = BN_CTX_get(ctx); | 471 | goto err; |
473 | s = BN_CTX_get(ctx); | 472 | if ((y1 = BN_CTX_get(ctx)) == NULL) |
474 | t = BN_CTX_get(ctx); | 473 | goto err; |
475 | if (t == NULL) | 474 | if ((x2 = BN_CTX_get(ctx)) == NULL) |
475 | goto err; | ||
476 | if ((y2 = BN_CTX_get(ctx)) == NULL) | ||
477 | goto err; | ||
478 | if ((s = BN_CTX_get(ctx)) == NULL) | ||
479 | goto err; | ||
480 | if ((t = BN_CTX_get(ctx)) == NULL) | ||
476 | goto err; | 481 | goto err; |
477 | 482 | ||
478 | if (a->Z_is_one) { | 483 | if (a->Z_is_one) { |
@@ -611,9 +616,9 @@ ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX | |||
611 | return -1; | 616 | return -1; |
612 | } | 617 | } |
613 | BN_CTX_start(ctx); | 618 | BN_CTX_start(ctx); |
614 | y2 = BN_CTX_get(ctx); | 619 | if ((y2 = BN_CTX_get(ctx)) == NULL) |
615 | lh = BN_CTX_get(ctx); | 620 | goto err; |
616 | if (lh == NULL) | 621 | if ((lh = BN_CTX_get(ctx)) == NULL) |
617 | goto err; | 622 | goto err; |
618 | 623 | ||
619 | /* | 624 | /* |
@@ -651,7 +656,8 @@ err: | |||
651 | * 1 not equal | 656 | * 1 not equal |
652 | */ | 657 | */ |
653 | int | 658 | int |
654 | ec_GF2m_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b, BN_CTX * ctx) | 659 | ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a, |
660 | const EC_POINT *b, BN_CTX *ctx) | ||
655 | { | 661 | { |
656 | BIGNUM *aX, *aY, *bX, *bY; | 662 | BIGNUM *aX, *aY, *bX, *bY; |
657 | BN_CTX *new_ctx = NULL; | 663 | BN_CTX *new_ctx = NULL; |
@@ -672,11 +678,13 @@ ec_GF2m_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * | |||
672 | return -1; | 678 | return -1; |
673 | } | 679 | } |
674 | BN_CTX_start(ctx); | 680 | BN_CTX_start(ctx); |
675 | aX = BN_CTX_get(ctx); | 681 | if ((aX = BN_CTX_get(ctx)) == NULL) |
676 | aY = BN_CTX_get(ctx); | 682 | goto err; |
677 | bX = BN_CTX_get(ctx); | 683 | if ((aY = BN_CTX_get(ctx)) == NULL) |
678 | bY = BN_CTX_get(ctx); | 684 | goto err; |
679 | if (bY == NULL) | 685 | if ((bX = BN_CTX_get(ctx)) == NULL) |
686 | goto err; | ||
687 | if ((bY = BN_CTX_get(ctx)) == NULL) | ||
680 | goto err; | 688 | goto err; |
681 | 689 | ||
682 | if (!EC_POINT_get_affine_coordinates_GF2m(group, a, aX, aY, ctx)) | 690 | if (!EC_POINT_get_affine_coordinates_GF2m(group, a, aX, aY, ctx)) |
@@ -710,9 +718,9 @@ ec_GF2m_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ct | |||
710 | return 0; | 718 | return 0; |
711 | } | 719 | } |
712 | BN_CTX_start(ctx); | 720 | BN_CTX_start(ctx); |
713 | x = BN_CTX_get(ctx); | 721 | if ((x = BN_CTX_get(ctx)) == NULL) |
714 | y = BN_CTX_get(ctx); | 722 | goto err; |
715 | if (y == NULL) | 723 | if ((y = BN_CTX_get(ctx)) == NULL) |
716 | goto err; | 724 | goto err; |
717 | 725 | ||
718 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) | 726 | if (!EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx)) |
diff --git a/src/lib/libssl/src/crypto/ec/ec_key.c b/src/lib/libssl/src/crypto/ec/ec_key.c index f9904b4ee9..45192c3231 100644 --- a/src/lib/libssl/src/crypto/ec/ec_key.c +++ b/src/lib/libssl/src/crypto/ec/ec_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_key.c,v 1.10 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ec_key.c,v 1.11 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -359,8 +359,11 @@ EC_KEY_set_public_key_affine_coordinates(EC_KEY * key, BIGNUM * x, BIGNUM * y) | |||
359 | if (tmp_nid == NID_X9_62_characteristic_two_field) | 359 | if (tmp_nid == NID_X9_62_characteristic_two_field) |
360 | is_char_two = 1; | 360 | is_char_two = 1; |
361 | 361 | ||
362 | tx = BN_CTX_get(ctx); | 362 | if ((tx = BN_CTX_get(ctx)) == NULL) |
363 | ty = BN_CTX_get(ctx); | 363 | goto err; |
364 | if ((ty = BN_CTX_get(ctx)) == NULL) | ||
365 | goto err; | ||
366 | |||
364 | #ifndef OPENSSL_NO_EC2M | 367 | #ifndef OPENSSL_NO_EC2M |
365 | if (is_char_two) { | 368 | if (is_char_two) { |
366 | if (!EC_POINT_set_affine_coordinates_GF2m(key->group, point, | 369 | if (!EC_POINT_set_affine_coordinates_GF2m(key->group, point, |
diff --git a/src/lib/libssl/src/crypto/ec/ec_lib.c b/src/lib/libssl/src/crypto/ec/ec_lib.c index 47ccc614d1..8cf0f2241e 100644 --- a/src/lib/libssl/src/crypto/ec/ec_lib.c +++ b/src/lib/libssl/src/crypto/ec/ec_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_lib.c,v 1.15 2014/07/12 16:03:37 miod Exp $ */ | 1 | /* $OpenBSD: ec_lib.c,v 1.16 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -497,18 +497,19 @@ EC_GROUP_cmp(const EC_GROUP * a, const EC_GROUP * b, BN_CTX * ctx) | |||
497 | return -1; | 497 | return -1; |
498 | 498 | ||
499 | BN_CTX_start(ctx); | 499 | BN_CTX_start(ctx); |
500 | a1 = BN_CTX_get(ctx); | 500 | if ((a1 = BN_CTX_get(ctx)) == NULL) |
501 | a2 = BN_CTX_get(ctx); | 501 | goto err; |
502 | a3 = BN_CTX_get(ctx); | 502 | if ((a2 = BN_CTX_get(ctx)) == NULL) |
503 | b1 = BN_CTX_get(ctx); | 503 | goto err; |
504 | b2 = BN_CTX_get(ctx); | 504 | if ((a3 = BN_CTX_get(ctx)) == NULL) |
505 | b3 = BN_CTX_get(ctx); | 505 | goto err; |
506 | if (!b3) { | 506 | if ((b1 = BN_CTX_get(ctx)) == NULL) |
507 | BN_CTX_end(ctx); | 507 | goto err; |
508 | if (ctx_new) | 508 | if ((b2 = BN_CTX_get(ctx)) == NULL) |
509 | BN_CTX_free(ctx); | 509 | goto err; |
510 | return -1; | 510 | if ((b3 = BN_CTX_get(ctx)) == NULL) |
511 | } | 511 | goto err; |
512 | |||
512 | /* | 513 | /* |
513 | * XXX This approach assumes that the external representation of | 514 | * XXX This approach assumes that the external representation of |
514 | * curves over the same field type is the same. | 515 | * curves over the same field type is the same. |
@@ -544,6 +545,12 @@ EC_GROUP_cmp(const EC_GROUP * a, const EC_GROUP * b, BN_CTX * ctx) | |||
544 | BN_CTX_free(ctx); | 545 | BN_CTX_free(ctx); |
545 | 546 | ||
546 | return r; | 547 | return r; |
548 | |||
549 | err: | ||
550 | BN_CTX_end(ctx); | ||
551 | if (ctx_new) | ||
552 | BN_CTX_free(ctx); | ||
553 | return -1; | ||
547 | } | 554 | } |
548 | 555 | ||
549 | 556 | ||
diff --git a/src/lib/libssl/src/crypto/ec/ec_mult.c b/src/lib/libssl/src/crypto/ec/ec_mult.c index 9e3aee13a2..e711413598 100644 --- a/src/lib/libssl/src/crypto/ec/ec_mult.c +++ b/src/lib/libssl/src/crypto/ec/ec_mult.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_mult.c,v 1.16 2015/02/07 13:19:15 doug Exp $ */ | 1 | /* $OpenBSD: ec_mult.c,v 1.17 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. | 3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -753,8 +753,7 @@ ec_wNAF_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
753 | goto err; | 753 | goto err; |
754 | } | 754 | } |
755 | BN_CTX_start(ctx); | 755 | BN_CTX_start(ctx); |
756 | order = BN_CTX_get(ctx); | 756 | if ((order = BN_CTX_get(ctx)) == NULL) |
757 | if (order == NULL) | ||
758 | goto err; | 757 | goto err; |
759 | 758 | ||
760 | if (!EC_GROUP_get_order(group, order, ctx)) | 759 | if (!EC_GROUP_get_order(group, order, ctx)) |
diff --git a/src/lib/libssl/src/crypto/ec/ecp_oct.c b/src/lib/libssl/src/crypto/ec/ecp_oct.c index abc31e6382..994f0b08b1 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_oct.c +++ b/src/lib/libssl/src/crypto/ec/ecp_oct.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecp_oct.c,v 1.6 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ecp_oct.c,v 1.7 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
3 | * for the OpenSSL project. | 3 | * for the OpenSSL project. |
4 | * Includes code written by Bodo Moeller for the OpenSSL project. | 4 | * Includes code written by Bodo Moeller for the OpenSSL project. |
@@ -67,8 +67,8 @@ | |||
67 | #include "ec_lcl.h" | 67 | #include "ec_lcl.h" |
68 | 68 | ||
69 | int | 69 | int |
70 | ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, EC_POINT * point, | 70 | ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, |
71 | const BIGNUM * x_, int y_bit, BN_CTX * ctx) | 71 | EC_POINT * point, const BIGNUM * x_, int y_bit, BN_CTX * ctx) |
72 | { | 72 | { |
73 | BN_CTX *new_ctx = NULL; | 73 | BN_CTX *new_ctx = NULL; |
74 | BIGNUM *tmp1, *tmp2, *x, *y; | 74 | BIGNUM *tmp1, *tmp2, *x, *y; |
@@ -85,11 +85,13 @@ ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, EC_POINT * poin | |||
85 | y_bit = (y_bit != 0); | 85 | y_bit = (y_bit != 0); |
86 | 86 | ||
87 | BN_CTX_start(ctx); | 87 | BN_CTX_start(ctx); |
88 | tmp1 = BN_CTX_get(ctx); | 88 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
89 | tmp2 = BN_CTX_get(ctx); | 89 | goto err; |
90 | x = BN_CTX_get(ctx); | 90 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
91 | y = BN_CTX_get(ctx); | 91 | goto err; |
92 | if (y == NULL) | 92 | if ((x = BN_CTX_get(ctx)) == NULL) |
93 | goto err; | ||
94 | if ((y = BN_CTX_get(ctx)) == NULL) | ||
93 | goto err; | 95 | goto err; |
94 | 96 | ||
95 | /* | 97 | /* |
@@ -239,9 +241,9 @@ ec_GFp_simple_point2oct(const EC_GROUP * group, const EC_POINT * point, point_co | |||
239 | } | 241 | } |
240 | BN_CTX_start(ctx); | 242 | BN_CTX_start(ctx); |
241 | used_ctx = 1; | 243 | used_ctx = 1; |
242 | x = BN_CTX_get(ctx); | 244 | if ((x = BN_CTX_get(ctx)) == NULL) |
243 | y = BN_CTX_get(ctx); | 245 | goto err; |
244 | if (y == NULL) | 246 | if ((y = BN_CTX_get(ctx)) == NULL) |
245 | goto err; | 247 | goto err; |
246 | 248 | ||
247 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) | 249 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) |
@@ -348,9 +350,9 @@ ec_GFp_simple_oct2point(const EC_GROUP * group, EC_POINT * point, | |||
348 | return 0; | 350 | return 0; |
349 | } | 351 | } |
350 | BN_CTX_start(ctx); | 352 | BN_CTX_start(ctx); |
351 | x = BN_CTX_get(ctx); | 353 | if ((x = BN_CTX_get(ctx)) == NULL) |
352 | y = BN_CTX_get(ctx); | 354 | goto err; |
353 | if (y == NULL) | 355 | if ((y = BN_CTX_get(ctx)) == NULL) |
354 | goto err; | 356 | goto err; |
355 | 357 | ||
356 | if (!BN_bin2bn(buf + 1, field_len, x)) | 358 | if (!BN_bin2bn(buf + 1, field_len, x)) |
diff --git a/src/lib/libssl/src/crypto/ec/ecp_smpl.c b/src/lib/libssl/src/crypto/ec/ecp_smpl.c index 7b3bb2364d..f6db4dc9b1 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_smpl.c +++ b/src/lib/libssl/src/crypto/ec/ecp_smpl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecp_smpl.c,v 1.14 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ecp_smpl.c,v 1.15 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
3 | * for the OpenSSL project. | 3 | * for the OpenSSL project. |
4 | * Includes code written by Bodo Moeller for the OpenSSL project. | 4 | * Includes code written by Bodo Moeller for the OpenSSL project. |
@@ -188,8 +188,7 @@ ec_GFp_simple_group_set_curve(EC_GROUP * group, | |||
188 | return 0; | 188 | return 0; |
189 | } | 189 | } |
190 | BN_CTX_start(ctx); | 190 | BN_CTX_start(ctx); |
191 | tmp_a = BN_CTX_get(ctx); | 191 | if ((tmp_a = BN_CTX_get(ctx)) == NULL) |
192 | if (tmp_a == NULL) | ||
193 | goto err; | 192 | goto err; |
194 | 193 | ||
195 | /* group->field */ | 194 | /* group->field */ |
@@ -294,12 +293,15 @@ ec_GFp_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
294 | } | 293 | } |
295 | } | 294 | } |
296 | BN_CTX_start(ctx); | 295 | BN_CTX_start(ctx); |
297 | a = BN_CTX_get(ctx); | 296 | if ((a = BN_CTX_get(ctx)) == NULL) |
298 | b = BN_CTX_get(ctx); | 297 | goto err; |
299 | tmp_1 = BN_CTX_get(ctx); | 298 | if ((b = BN_CTX_get(ctx)) == NULL) |
300 | tmp_2 = BN_CTX_get(ctx); | 299 | goto err; |
301 | order = BN_CTX_get(ctx); | 300 | if ((tmp_1 = BN_CTX_get(ctx)) == NULL) |
302 | if (order == NULL) | 301 | goto err; |
302 | if ((tmp_2 = BN_CTX_get(ctx)) == NULL) | ||
303 | goto err; | ||
304 | if ((order = BN_CTX_get(ctx)) == NULL) | ||
303 | goto err; | 305 | goto err; |
304 | 306 | ||
305 | if (group->meth->field_decode) { | 307 | if (group->meth->field_decode) { |
@@ -539,11 +541,13 @@ ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP * group, const EC_POIN | |||
539 | return 0; | 541 | return 0; |
540 | } | 542 | } |
541 | BN_CTX_start(ctx); | 543 | BN_CTX_start(ctx); |
542 | Z = BN_CTX_get(ctx); | 544 | if ((Z = BN_CTX_get(ctx)) == NULL) |
543 | Z_1 = BN_CTX_get(ctx); | 545 | goto err; |
544 | Z_2 = BN_CTX_get(ctx); | 546 | if ((Z_1 = BN_CTX_get(ctx)) == NULL) |
545 | Z_3 = BN_CTX_get(ctx); | 547 | goto err; |
546 | if (Z_3 == NULL) | 548 | if ((Z_2 = BN_CTX_get(ctx)) == NULL) |
549 | goto err; | ||
550 | if ((Z_3 = BN_CTX_get(ctx)) == NULL) | ||
547 | goto err; | 551 | goto err; |
548 | 552 | ||
549 | /* transform (X, Y, Z) into (x, y) := (X/Z^2, Y/Z^3) */ | 553 | /* transform (X, Y, Z) into (x, y) := (X/Z^2, Y/Z^3) */ |
@@ -652,14 +656,19 @@ ec_GFp_simple_add(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, cons | |||
652 | return 0; | 656 | return 0; |
653 | } | 657 | } |
654 | BN_CTX_start(ctx); | 658 | BN_CTX_start(ctx); |
655 | n0 = BN_CTX_get(ctx); | 659 | if ((n0 = BN_CTX_get(ctx)) == NULL) |
656 | n1 = BN_CTX_get(ctx); | 660 | goto end; |
657 | n2 = BN_CTX_get(ctx); | 661 | if ((n1 = BN_CTX_get(ctx)) == NULL) |
658 | n3 = BN_CTX_get(ctx); | 662 | goto end; |
659 | n4 = BN_CTX_get(ctx); | 663 | if ((n2 = BN_CTX_get(ctx)) == NULL) |
660 | n5 = BN_CTX_get(ctx); | 664 | goto end; |
661 | n6 = BN_CTX_get(ctx); | 665 | if ((n3 = BN_CTX_get(ctx)) == NULL) |
662 | if (n6 == NULL) | 666 | goto end; |
667 | if ((n4 = BN_CTX_get(ctx)) == NULL) | ||
668 | goto end; | ||
669 | if ((n5 = BN_CTX_get(ctx)) == NULL) | ||
670 | goto end; | ||
671 | if ((n6 = BN_CTX_get(ctx)) == NULL) | ||
663 | goto end; | 672 | goto end; |
664 | 673 | ||
665 | /* | 674 | /* |
@@ -834,11 +843,13 @@ ec_GFp_simple_dbl(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, BN_C | |||
834 | return 0; | 843 | return 0; |
835 | } | 844 | } |
836 | BN_CTX_start(ctx); | 845 | BN_CTX_start(ctx); |
837 | n0 = BN_CTX_get(ctx); | 846 | if ((n0 = BN_CTX_get(ctx)) == NULL) |
838 | n1 = BN_CTX_get(ctx); | 847 | goto err; |
839 | n2 = BN_CTX_get(ctx); | 848 | if ((n1 = BN_CTX_get(ctx)) == NULL) |
840 | n3 = BN_CTX_get(ctx); | 849 | goto err; |
841 | if (n3 == NULL) | 850 | if ((n2 = BN_CTX_get(ctx)) == NULL) |
851 | goto err; | ||
852 | if ((n3 = BN_CTX_get(ctx)) == NULL) | ||
842 | goto err; | 853 | goto err; |
843 | 854 | ||
844 | /* | 855 | /* |
@@ -990,11 +1001,13 @@ ec_GFp_simple_is_on_curve(const EC_GROUP * group, const EC_POINT * point, BN_CTX | |||
990 | return -1; | 1001 | return -1; |
991 | } | 1002 | } |
992 | BN_CTX_start(ctx); | 1003 | BN_CTX_start(ctx); |
993 | rh = BN_CTX_get(ctx); | 1004 | if ((rh = BN_CTX_get(ctx)) == NULL) |
994 | tmp = BN_CTX_get(ctx); | 1005 | goto err; |
995 | Z4 = BN_CTX_get(ctx); | 1006 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
996 | Z6 = BN_CTX_get(ctx); | 1007 | goto err; |
997 | if (Z6 == NULL) | 1008 | if ((Z4 = BN_CTX_get(ctx)) == NULL) |
1009 | goto err; | ||
1010 | if ((Z6 = BN_CTX_get(ctx)) == NULL) | ||
998 | goto err; | 1011 | goto err; |
999 | 1012 | ||
1000 | /* | 1013 | /* |
@@ -1101,11 +1114,13 @@ ec_GFp_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b | |||
1101 | return -1; | 1114 | return -1; |
1102 | } | 1115 | } |
1103 | BN_CTX_start(ctx); | 1116 | BN_CTX_start(ctx); |
1104 | tmp1 = BN_CTX_get(ctx); | 1117 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
1105 | tmp2 = BN_CTX_get(ctx); | 1118 | goto end; |
1106 | Za23 = BN_CTX_get(ctx); | 1119 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
1107 | Zb23 = BN_CTX_get(ctx); | 1120 | goto end; |
1108 | if (Zb23 == NULL) | 1121 | if ((Za23 = BN_CTX_get(ctx)) == NULL) |
1122 | goto end; | ||
1123 | if ((Zb23 = BN_CTX_get(ctx)) == NULL) | ||
1109 | goto end; | 1124 | goto end; |
1110 | 1125 | ||
1111 | /* | 1126 | /* |
@@ -1184,9 +1199,9 @@ ec_GFp_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ctx | |||
1184 | return 0; | 1199 | return 0; |
1185 | } | 1200 | } |
1186 | BN_CTX_start(ctx); | 1201 | BN_CTX_start(ctx); |
1187 | x = BN_CTX_get(ctx); | 1202 | if ((x = BN_CTX_get(ctx)) == NULL) |
1188 | y = BN_CTX_get(ctx); | 1203 | goto err; |
1189 | if (y == NULL) | 1204 | if ((y = BN_CTX_get(ctx)) == NULL) |
1190 | goto err; | 1205 | goto err; |
1191 | 1206 | ||
1192 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) | 1207 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) |
@@ -1225,9 +1240,9 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT * | |||
1225 | return 0; | 1240 | return 0; |
1226 | } | 1241 | } |
1227 | BN_CTX_start(ctx); | 1242 | BN_CTX_start(ctx); |
1228 | tmp0 = BN_CTX_get(ctx); | 1243 | if ((tmp0 = BN_CTX_get(ctx)) == NULL) |
1229 | tmp1 = BN_CTX_get(ctx); | 1244 | goto err; |
1230 | if (tmp0 == NULL || tmp1 == NULL) | 1245 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
1231 | goto err; | 1246 | goto err; |
1232 | 1247 | ||
1233 | /* | 1248 | /* |
diff --git a/src/lib/libssl/src/crypto/ecdh/ech_ossl.c b/src/lib/libssl/src/crypto/ecdh/ech_ossl.c index ee130edeee..4fae7cacfd 100644 --- a/src/lib/libssl/src/crypto/ecdh/ech_ossl.c +++ b/src/lib/libssl/src/crypto/ecdh/ech_ossl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ech_ossl.c,v 1.8 2014/07/12 16:03:37 miod Exp $ */ | 1 | /* $OpenBSD: ech_ossl.c,v 1.9 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 | * |
@@ -120,8 +120,10 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
120 | 120 | ||
121 | if ((ctx = BN_CTX_new()) == NULL) goto err; | 121 | if ((ctx = BN_CTX_new()) == NULL) goto err; |
122 | BN_CTX_start(ctx); | 122 | BN_CTX_start(ctx); |
123 | x = BN_CTX_get(ctx); | 123 | if ((x = BN_CTX_get(ctx)) == NULL) |
124 | y = BN_CTX_get(ctx); | 124 | goto err; |
125 | if ((y = BN_CTX_get(ctx)) == NULL) | ||
126 | goto err; | ||
125 | 127 | ||
126 | priv_key = EC_KEY_get0_private_key(ecdh); | 128 | priv_key = EC_KEY_get0_private_key(ecdh); |
127 | if (priv_key == NULL) | 129 | if (priv_key == NULL) |
diff --git a/src/lib/libssl/src/crypto/engine/eng_rsax.c b/src/lib/libssl/src/crypto/engine/eng_rsax.c index c33a776707..784b74a22f 100644 --- a/src/lib/libssl/src/crypto/engine/eng_rsax.c +++ b/src/lib/libssl/src/crypto/engine/eng_rsax.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: eng_rsax.c,v 1.12 2014/11/19 13:35:37 krw Exp $ */ | 1 | /* $OpenBSD: eng_rsax.c,v 1.13 2015/02/09 15:49:22 jsing Exp $ */ |
2 | /* Copyright (c) 2010-2010 Intel Corp. | 2 | /* Copyright (c) 2010-2010 Intel Corp. |
3 | * Author: Vinodh.Gopal@intel.com | 3 | * Author: Vinodh.Gopal@intel.com |
4 | * Jim Guilford | 4 | * Jim Guilford |
@@ -519,9 +519,12 @@ e_rsax_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
519 | int ret = 0; | 519 | int ret = 0; |
520 | 520 | ||
521 | BN_CTX_start(ctx); | 521 | BN_CTX_start(ctx); |
522 | r1 = BN_CTX_get(ctx); | 522 | if ((r1 = BN_CTX_get(ctx)) == NULL) |
523 | m1 = BN_CTX_get(ctx); | 523 | goto err; |
524 | vrfy = BN_CTX_get(ctx); | 524 | if ((m1 = BN_CTX_get(ctx)) == NULL) |
525 | goto err; | ||
526 | if ((vrfy = BN_CTX_get(ctx)) == NULL) | ||
527 | goto err; | ||
525 | 528 | ||
526 | { | 529 | { |
527 | BIGNUM local_p, local_q; | 530 | BIGNUM local_p, local_q; |
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_crpt.c b/src/lib/libssl/src/crypto/rsa/rsa_crpt.c index b057dd2201..cf7f9a328b 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_crpt.c +++ b/src/lib/libssl/src/crypto/rsa/rsa_crpt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_crpt.c,v 1.12 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_crpt.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 | * |
@@ -145,10 +145,11 @@ rsa_get_public_exp(const BIGNUM *d, const BIGNUM *p, const BIGNUM *q, | |||
145 | return NULL; | 145 | return NULL; |
146 | 146 | ||
147 | BN_CTX_start(ctx); | 147 | BN_CTX_start(ctx); |
148 | r0 = BN_CTX_get(ctx); | 148 | if ((r0 = BN_CTX_get(ctx)) == NULL) |
149 | r1 = BN_CTX_get(ctx); | 149 | goto err; |
150 | r2 = BN_CTX_get(ctx); | 150 | if ((r1 = BN_CTX_get(ctx)) == NULL) |
151 | if (r2 == NULL) | 151 | goto err; |
152 | if ((r2 = BN_CTX_get(ctx)) == NULL) | ||
152 | goto err; | 153 | goto err; |
153 | 154 | ||
154 | if (!BN_sub(r1, p, BN_value_one())) | 155 | if (!BN_sub(r1, p, BN_value_one())) |
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_eay.c b/src/lib/libssl/src/crypto/rsa/rsa_eay.c index f8031c87a2..0eb18cf3c7 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_eay.c +++ b/src/lib/libssl/src/crypto/rsa/rsa_eay.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_eay.c,v 1.36 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_eay.c,v 1.37 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 | * |
@@ -181,7 +181,7 @@ RSA_eay_public_encrypt(int flen, const unsigned char *from, unsigned char *to, | |||
181 | ret = BN_CTX_get(ctx); | 181 | ret = BN_CTX_get(ctx); |
182 | num = BN_num_bytes(rsa->n); | 182 | num = BN_num_bytes(rsa->n); |
183 | buf = malloc(num); | 183 | buf = malloc(num); |
184 | if (!f || !ret || !buf) { | 184 | if (f == NULL || ret == NULL || buf == NULL) { |
185 | RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, ERR_R_MALLOC_FAILURE); | 185 | RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, ERR_R_MALLOC_FAILURE); |
186 | goto err; | 186 | goto err; |
187 | } | 187 | } |
@@ -366,7 +366,7 @@ RSA_eay_private_encrypt(int flen, const unsigned char *from, unsigned char *to, | |||
366 | ret = BN_CTX_get(ctx); | 366 | ret = BN_CTX_get(ctx); |
367 | num = BN_num_bytes(rsa->n); | 367 | num = BN_num_bytes(rsa->n); |
368 | buf = malloc(num); | 368 | buf = malloc(num); |
369 | if (!f || !ret || !buf) { | 369 | if (f == NULL || ret == NULL || buf == NULL) { |
370 | RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT, ERR_R_MALLOC_FAILURE); | 370 | RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT, ERR_R_MALLOC_FAILURE); |
371 | goto err; | 371 | goto err; |
372 | } | 372 | } |
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_gen.c b/src/lib/libssl/src/crypto/rsa/rsa_gen.c index a3b9da4856..f6f051c442 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_gen.c +++ b/src/lib/libssl/src/crypto/rsa/rsa_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_gen.c,v 1.16 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_gen.c,v 1.17 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 | * |
@@ -99,11 +99,13 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb) | |||
99 | if (ctx == NULL) | 99 | if (ctx == NULL) |
100 | goto err; | 100 | goto err; |
101 | BN_CTX_start(ctx); | 101 | BN_CTX_start(ctx); |
102 | r0 = BN_CTX_get(ctx); | 102 | if ((r0 = BN_CTX_get(ctx)) == NULL) |
103 | r1 = BN_CTX_get(ctx); | 103 | goto err; |
104 | r2 = BN_CTX_get(ctx); | 104 | if ((r1 = BN_CTX_get(ctx)) == NULL) |
105 | r3 = BN_CTX_get(ctx); | 105 | goto err; |
106 | if (r3 == NULL) | 106 | if ((r2 = BN_CTX_get(ctx)) == NULL) |
107 | goto err; | ||
108 | if ((r3 = BN_CTX_get(ctx)) == NULL) | ||
107 | goto err; | 109 | goto err; |
108 | 110 | ||
109 | bitsp = (bits + 1) / 2; | 111 | bitsp = (bits + 1) / 2; |