diff options
author | jsing <> | 2015-02-14 06:40:04 +0000 |
---|---|---|
committer | jsing <> | 2015-02-14 06:40:04 +0000 |
commit | d18f9324ae82e670faf7e01361779f8b667bce93 (patch) | |
tree | 2d9af56b6e77fbd7e0b88f6dfb12cb622bc4a627 | |
parent | 1f8b585ef49501b9fcbd6f739862f7934d19a184 (diff) | |
download | openbsd-d18f9324ae82e670faf7e01361779f8b667bce93.tar.gz openbsd-d18f9324ae82e670faf7e01361779f8b667bce93.tar.bz2 openbsd-d18f9324ae82e670faf7e01361779f8b667bce93.zip |
Consistently check the return value from BN_CTX_get() on assignment.
This is the same as the previous larger commit, however it would seem the
GOST part got missed.
ok beck@ doug@
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001.c | 59 | ||||
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001_ameth.c | 8 | ||||
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001_key.c | 8 | ||||
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001_pmeth.c | 11 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/gost/gostr341001.c | 59 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/gost/gostr341001_ameth.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/gost/gostr341001_key.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/gost/gostr341001_pmeth.c | 11 |
8 files changed, 88 insertions, 84 deletions
diff --git a/src/lib/libcrypto/gost/gostr341001.c b/src/lib/libcrypto/gost/gostr341001.c index bc553e1083..c6221e4a01 100644 --- a/src/lib/libcrypto/gost/gostr341001.c +++ b/src/lib/libcrypto/gost/gostr341001.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001.c,v 1.3 2015/02/11 03:19:37 doug Exp $ */ | 1 | /* $OpenBSD: gostr341001.c,v 1.4 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -168,23 +168,22 @@ gost2001_do_sign(BIGNUM *md, GOST_KEY *eckey) | |||
168 | s = newsig->s; | 168 | s = newsig->s; |
169 | r = newsig->r; | 169 | r = newsig->r; |
170 | group = GOST_KEY_get0_group(eckey); | 170 | group = GOST_KEY_get0_group(eckey); |
171 | order = BN_CTX_get(ctx); | 171 | if ((order = BN_CTX_get(ctx)) == NULL) |
172 | if (order == NULL) | ||
173 | goto err; | 172 | goto err; |
174 | if (EC_GROUP_get_order(group, order, ctx) == 0) | 173 | if (EC_GROUP_get_order(group, order, ctx) == 0) |
175 | goto err; | 174 | goto err; |
176 | priv_key = GOST_KEY_get0_private_key(eckey); | 175 | priv_key = GOST_KEY_get0_private_key(eckey); |
177 | e = BN_CTX_get(ctx); | 176 | if ((e = BN_CTX_get(ctx)) == NULL) |
178 | if (e == NULL) | ||
179 | goto err; | 177 | goto err; |
180 | if (BN_mod(e, md, order, ctx) == 0) | 178 | if (BN_mod(e, md, order, ctx) == 0) |
181 | goto err; | 179 | goto err; |
182 | if (BN_is_zero(e)) | 180 | if (BN_is_zero(e)) |
183 | BN_one(e); | 181 | BN_one(e); |
184 | k = BN_CTX_get(ctx); | 182 | if ((k = BN_CTX_get(ctx)) == NULL) |
185 | X = BN_CTX_get(ctx); | 183 | goto err; |
186 | C = EC_POINT_new(group); | 184 | if ((X = BN_CTX_get(ctx)) == NULL) |
187 | if (C == NULL) | 185 | goto err; |
186 | if ((C = EC_POINT_new(group)) == NULL) | ||
188 | goto err; | 187 | goto err; |
189 | do { | 188 | do { |
190 | do { | 189 | do { |
@@ -218,15 +217,13 @@ gost2001_do_sign(BIGNUM *md, GOST_KEY *eckey) | |||
218 | } while (BN_is_zero(r)); | 217 | } while (BN_is_zero(r)); |
219 | /* s = (r*priv_key+k*e) mod order */ | 218 | /* s = (r*priv_key+k*e) mod order */ |
220 | if (tmp == NULL) { | 219 | if (tmp == NULL) { |
221 | tmp = BN_CTX_get(ctx); | 220 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
222 | if (tmp == NULL) | ||
223 | goto err; | 221 | goto err; |
224 | } | 222 | } |
225 | if (BN_mod_mul(tmp, priv_key, r, order, ctx) == 0) | 223 | if (BN_mod_mul(tmp, priv_key, r, order, ctx) == 0) |
226 | goto err; | 224 | goto err; |
227 | if (tmp2 == NULL) { | 225 | if (tmp2 == NULL) { |
228 | tmp2 = BN_CTX_get(ctx); | 226 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
229 | if (tmp2 == NULL) | ||
230 | goto err; | 227 | goto err; |
231 | } | 228 | } |
232 | if (BN_mod_mul(tmp2, k, e, order, ctx) == 0) | 229 | if (BN_mod_mul(tmp2, k, e, order, ctx) == 0) |
@@ -264,15 +261,21 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
264 | if (ctx == NULL) | 261 | if (ctx == NULL) |
265 | goto err; | 262 | goto err; |
266 | BN_CTX_start(ctx); | 263 | BN_CTX_start(ctx); |
267 | order = BN_CTX_get(ctx); | 264 | if ((order = BN_CTX_get(ctx)) == NULL) |
268 | e = BN_CTX_get(ctx); | 265 | goto err; |
269 | z1 = BN_CTX_get(ctx); | 266 | if ((e = BN_CTX_get(ctx)) == NULL) |
270 | z2 = BN_CTX_get(ctx); | 267 | goto err; |
271 | tmp = BN_CTX_get(ctx); | 268 | if ((z1 = BN_CTX_get(ctx)) == NULL) |
272 | X = BN_CTX_get(ctx); | 269 | goto err; |
273 | R = BN_CTX_get(ctx); | 270 | if ((z2 = BN_CTX_get(ctx)) == NULL) |
274 | v = BN_CTX_get(ctx); | 271 | goto err; |
275 | if (v == NULL) | 272 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
273 | goto err; | ||
274 | if ((X = BN_CTX_get(ctx)) == NULL) | ||
275 | goto err; | ||
276 | if ((R = BN_CTX_get(ctx)) == NULL) | ||
277 | goto err; | ||
278 | if ((v = BN_CTX_get(ctx)) == NULL) | ||
276 | goto err; | 279 | goto err; |
277 | 280 | ||
278 | if (EC_GROUP_get_order(group, order, ctx) == 0) | 281 | if (EC_GROUP_get_order(group, order, ctx) == 0) |
@@ -289,8 +292,7 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
289 | goto err; | 292 | goto err; |
290 | if (BN_is_zero(e)) | 293 | if (BN_is_zero(e)) |
291 | BN_one(e); | 294 | BN_one(e); |
292 | v = BN_mod_inverse(v, e, order, ctx); | 295 | if ((v = BN_mod_inverse(v, e, order, ctx)) == NULL) |
293 | if (v == NULL) | ||
294 | goto err; | 296 | goto err; |
295 | if (BN_mod_mul(z1, sig->s, v, order, ctx) == 0) | 297 | if (BN_mod_mul(z1, sig->s, v, order, ctx) == 0) |
296 | goto err; | 298 | goto err; |
@@ -298,8 +300,7 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
298 | goto err; | 300 | goto err; |
299 | if (BN_mod_mul(z2, tmp, v, order, ctx) == 0) | 301 | if (BN_mod_mul(z2, tmp, v, order, ctx) == 0) |
300 | goto err; | 302 | goto err; |
301 | C = EC_POINT_new(group); | 303 | if ((C = EC_POINT_new(group)) == NULL) |
302 | if (C == NULL) | ||
303 | goto err; | 304 | goto err; |
304 | if (EC_POINT_mul(group, C, z1, pub_key, z2, ctx) == 0) { | 305 | if (EC_POINT_mul(group, C, z1, pub_key, z2, ctx) == 0) { |
305 | GOSTerr(GOST_F_GOST2001_DO_VERIFY, ERR_R_EC_LIB); | 306 | GOSTerr(GOST_F_GOST2001_DO_VERIFY, ERR_R_EC_LIB); |
@@ -345,9 +346,9 @@ VKO_compute_key(BIGNUM *X, BIGNUM *Y, const GOST_KEY *pkey, GOST_KEY *priv_key, | |||
345 | if (ctx == NULL) | 346 | if (ctx == NULL) |
346 | goto err; | 347 | goto err; |
347 | BN_CTX_start(ctx); | 348 | BN_CTX_start(ctx); |
348 | p = BN_CTX_get(ctx); | 349 | if ((p = BN_CTX_get(ctx)) == NULL) |
349 | order = BN_CTX_get(ctx); | 350 | goto err; |
350 | if (order == NULL) | 351 | if ((order = BN_CTX_get(ctx)) == NULL) |
351 | goto err; | 352 | goto err; |
352 | if (EC_GROUP_get_order(group, order, ctx) == 0) | 353 | if (EC_GROUP_get_order(group, order, ctx) == 0) |
353 | goto err; | 354 | goto err; |
diff --git a/src/lib/libcrypto/gost/gostr341001_ameth.c b/src/lib/libcrypto/gost/gostr341001_ameth.c index 45ddd44e42..3153d2f2eb 100644 --- a/src/lib/libcrypto/gost/gostr341001_ameth.c +++ b/src/lib/libcrypto/gost/gostr341001_ameth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_ameth.c,v 1.8 2015/02/11 04:05:14 beck Exp $ */ | 1 | /* $OpenBSD: gostr341001_ameth.c,v 1.9 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -347,9 +347,9 @@ pub_print_gost01(BIO *out, const EVP_PKEY *pkey, int indent, ASN1_PCTX *pctx) | |||
347 | return 0; | 347 | return 0; |
348 | } | 348 | } |
349 | BN_CTX_start(ctx); | 349 | BN_CTX_start(ctx); |
350 | X = BN_CTX_get(ctx); | 350 | if ((X = BN_CTX_get(ctx)) == NULL) |
351 | Y = BN_CTX_get(ctx); | 351 | goto err; |
352 | if (X == NULL || Y == NULL) | 352 | if ((Y = BN_CTX_get(ctx)) == NULL) |
353 | goto err; | 353 | goto err; |
354 | pubkey = GOST_KEY_get0_public_key(pkey->pkey.gost); | 354 | pubkey = GOST_KEY_get0_public_key(pkey->pkey.gost); |
355 | group = GOST_KEY_get0_group(pkey->pkey.gost); | 355 | group = GOST_KEY_get0_group(pkey->pkey.gost); |
diff --git a/src/lib/libcrypto/gost/gostr341001_key.c b/src/lib/libcrypto/gost/gostr341001_key.c index f00d361d3f..dbe360620a 100644 --- a/src/lib/libcrypto/gost/gostr341001_key.c +++ b/src/lib/libcrypto/gost/gostr341001_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_key.c,v 1.4 2015/02/11 03:19:37 doug Exp $ */ | 1 | /* $OpenBSD: gostr341001_key.c,v 1.5 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -198,9 +198,9 @@ GOST_KEY_set_public_key_affine_coordinates(GOST_KEY *key, BIGNUM *x, BIGNUM *y) | |||
198 | if (point == NULL) | 198 | if (point == NULL) |
199 | goto err; | 199 | goto err; |
200 | 200 | ||
201 | tx = BN_CTX_get(ctx); | 201 | if ((tx = BN_CTX_get(ctx)) == NULL) |
202 | ty = BN_CTX_get(ctx); | 202 | goto err; |
203 | if (ty == NULL) | 203 | if ((ty = BN_CTX_get(ctx)) == NULL) |
204 | goto err; | 204 | goto err; |
205 | if (EC_POINT_set_affine_coordinates_GFp(key->group, point, x, y, | 205 | if (EC_POINT_set_affine_coordinates_GFp(key->group, point, x, y, |
206 | ctx) == 0) | 206 | ctx) == 0) |
diff --git a/src/lib/libcrypto/gost/gostr341001_pmeth.c b/src/lib/libcrypto/gost/gostr341001_pmeth.c index 0157996a40..a297587c62 100644 --- a/src/lib/libcrypto/gost/gostr341001_pmeth.c +++ b/src/lib/libcrypto/gost/gostr341001_pmeth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_pmeth.c,v 1.10 2015/02/11 04:05:14 beck Exp $ */ | 1 | /* $OpenBSD: gostr341001_pmeth.c,v 1.11 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -324,10 +324,11 @@ gost01_VKO_key(EVP_PKEY *pub_key, EVP_PKEY *priv_key, const unsigned char *ukm, | |||
324 | return 0; | 324 | return 0; |
325 | 325 | ||
326 | BN_CTX_start(ctx); | 326 | BN_CTX_start(ctx); |
327 | UKM = BN_CTX_get(ctx); | 327 | if ((UKM = BN_CTX_get(ctx)) == NULL) |
328 | X = BN_CTX_get(ctx); | 328 | goto err; |
329 | Y = BN_CTX_get(ctx); | 329 | if ((X = BN_CTX_get(ctx)) == NULL) |
330 | if (Y == NULL) | 330 | goto err; |
331 | if ((Y = BN_CTX_get(ctx)) == NULL) | ||
331 | goto err; | 332 | goto err; |
332 | 333 | ||
333 | GOST_le2bn(ukm, 8, UKM); | 334 | GOST_le2bn(ukm, 8, UKM); |
diff --git a/src/lib/libssl/src/crypto/gost/gostr341001.c b/src/lib/libssl/src/crypto/gost/gostr341001.c index bc553e1083..c6221e4a01 100644 --- a/src/lib/libssl/src/crypto/gost/gostr341001.c +++ b/src/lib/libssl/src/crypto/gost/gostr341001.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001.c,v 1.3 2015/02/11 03:19:37 doug Exp $ */ | 1 | /* $OpenBSD: gostr341001.c,v 1.4 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -168,23 +168,22 @@ gost2001_do_sign(BIGNUM *md, GOST_KEY *eckey) | |||
168 | s = newsig->s; | 168 | s = newsig->s; |
169 | r = newsig->r; | 169 | r = newsig->r; |
170 | group = GOST_KEY_get0_group(eckey); | 170 | group = GOST_KEY_get0_group(eckey); |
171 | order = BN_CTX_get(ctx); | 171 | if ((order = BN_CTX_get(ctx)) == NULL) |
172 | if (order == NULL) | ||
173 | goto err; | 172 | goto err; |
174 | if (EC_GROUP_get_order(group, order, ctx) == 0) | 173 | if (EC_GROUP_get_order(group, order, ctx) == 0) |
175 | goto err; | 174 | goto err; |
176 | priv_key = GOST_KEY_get0_private_key(eckey); | 175 | priv_key = GOST_KEY_get0_private_key(eckey); |
177 | e = BN_CTX_get(ctx); | 176 | if ((e = BN_CTX_get(ctx)) == NULL) |
178 | if (e == NULL) | ||
179 | goto err; | 177 | goto err; |
180 | if (BN_mod(e, md, order, ctx) == 0) | 178 | if (BN_mod(e, md, order, ctx) == 0) |
181 | goto err; | 179 | goto err; |
182 | if (BN_is_zero(e)) | 180 | if (BN_is_zero(e)) |
183 | BN_one(e); | 181 | BN_one(e); |
184 | k = BN_CTX_get(ctx); | 182 | if ((k = BN_CTX_get(ctx)) == NULL) |
185 | X = BN_CTX_get(ctx); | 183 | goto err; |
186 | C = EC_POINT_new(group); | 184 | if ((X = BN_CTX_get(ctx)) == NULL) |
187 | if (C == NULL) | 185 | goto err; |
186 | if ((C = EC_POINT_new(group)) == NULL) | ||
188 | goto err; | 187 | goto err; |
189 | do { | 188 | do { |
190 | do { | 189 | do { |
@@ -218,15 +217,13 @@ gost2001_do_sign(BIGNUM *md, GOST_KEY *eckey) | |||
218 | } while (BN_is_zero(r)); | 217 | } while (BN_is_zero(r)); |
219 | /* s = (r*priv_key+k*e) mod order */ | 218 | /* s = (r*priv_key+k*e) mod order */ |
220 | if (tmp == NULL) { | 219 | if (tmp == NULL) { |
221 | tmp = BN_CTX_get(ctx); | 220 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
222 | if (tmp == NULL) | ||
223 | goto err; | 221 | goto err; |
224 | } | 222 | } |
225 | if (BN_mod_mul(tmp, priv_key, r, order, ctx) == 0) | 223 | if (BN_mod_mul(tmp, priv_key, r, order, ctx) == 0) |
226 | goto err; | 224 | goto err; |
227 | if (tmp2 == NULL) { | 225 | if (tmp2 == NULL) { |
228 | tmp2 = BN_CTX_get(ctx); | 226 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
229 | if (tmp2 == NULL) | ||
230 | goto err; | 227 | goto err; |
231 | } | 228 | } |
232 | if (BN_mod_mul(tmp2, k, e, order, ctx) == 0) | 229 | if (BN_mod_mul(tmp2, k, e, order, ctx) == 0) |
@@ -264,15 +261,21 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
264 | if (ctx == NULL) | 261 | if (ctx == NULL) |
265 | goto err; | 262 | goto err; |
266 | BN_CTX_start(ctx); | 263 | BN_CTX_start(ctx); |
267 | order = BN_CTX_get(ctx); | 264 | if ((order = BN_CTX_get(ctx)) == NULL) |
268 | e = BN_CTX_get(ctx); | 265 | goto err; |
269 | z1 = BN_CTX_get(ctx); | 266 | if ((e = BN_CTX_get(ctx)) == NULL) |
270 | z2 = BN_CTX_get(ctx); | 267 | goto err; |
271 | tmp = BN_CTX_get(ctx); | 268 | if ((z1 = BN_CTX_get(ctx)) == NULL) |
272 | X = BN_CTX_get(ctx); | 269 | goto err; |
273 | R = BN_CTX_get(ctx); | 270 | if ((z2 = BN_CTX_get(ctx)) == NULL) |
274 | v = BN_CTX_get(ctx); | 271 | goto err; |
275 | if (v == NULL) | 272 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
273 | goto err; | ||
274 | if ((X = BN_CTX_get(ctx)) == NULL) | ||
275 | goto err; | ||
276 | if ((R = BN_CTX_get(ctx)) == NULL) | ||
277 | goto err; | ||
278 | if ((v = BN_CTX_get(ctx)) == NULL) | ||
276 | goto err; | 279 | goto err; |
277 | 280 | ||
278 | if (EC_GROUP_get_order(group, order, ctx) == 0) | 281 | if (EC_GROUP_get_order(group, order, ctx) == 0) |
@@ -289,8 +292,7 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
289 | goto err; | 292 | goto err; |
290 | if (BN_is_zero(e)) | 293 | if (BN_is_zero(e)) |
291 | BN_one(e); | 294 | BN_one(e); |
292 | v = BN_mod_inverse(v, e, order, ctx); | 295 | if ((v = BN_mod_inverse(v, e, order, ctx)) == NULL) |
293 | if (v == NULL) | ||
294 | goto err; | 296 | goto err; |
295 | if (BN_mod_mul(z1, sig->s, v, order, ctx) == 0) | 297 | if (BN_mod_mul(z1, sig->s, v, order, ctx) == 0) |
296 | goto err; | 298 | goto err; |
@@ -298,8 +300,7 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
298 | goto err; | 300 | goto err; |
299 | if (BN_mod_mul(z2, tmp, v, order, ctx) == 0) | 301 | if (BN_mod_mul(z2, tmp, v, order, ctx) == 0) |
300 | goto err; | 302 | goto err; |
301 | C = EC_POINT_new(group); | 303 | if ((C = EC_POINT_new(group)) == NULL) |
302 | if (C == NULL) | ||
303 | goto err; | 304 | goto err; |
304 | if (EC_POINT_mul(group, C, z1, pub_key, z2, ctx) == 0) { | 305 | if (EC_POINT_mul(group, C, z1, pub_key, z2, ctx) == 0) { |
305 | GOSTerr(GOST_F_GOST2001_DO_VERIFY, ERR_R_EC_LIB); | 306 | GOSTerr(GOST_F_GOST2001_DO_VERIFY, ERR_R_EC_LIB); |
@@ -345,9 +346,9 @@ VKO_compute_key(BIGNUM *X, BIGNUM *Y, const GOST_KEY *pkey, GOST_KEY *priv_key, | |||
345 | if (ctx == NULL) | 346 | if (ctx == NULL) |
346 | goto err; | 347 | goto err; |
347 | BN_CTX_start(ctx); | 348 | BN_CTX_start(ctx); |
348 | p = BN_CTX_get(ctx); | 349 | if ((p = BN_CTX_get(ctx)) == NULL) |
349 | order = BN_CTX_get(ctx); | 350 | goto err; |
350 | if (order == NULL) | 351 | if ((order = BN_CTX_get(ctx)) == NULL) |
351 | goto err; | 352 | goto err; |
352 | if (EC_GROUP_get_order(group, order, ctx) == 0) | 353 | if (EC_GROUP_get_order(group, order, ctx) == 0) |
353 | goto err; | 354 | goto err; |
diff --git a/src/lib/libssl/src/crypto/gost/gostr341001_ameth.c b/src/lib/libssl/src/crypto/gost/gostr341001_ameth.c index 45ddd44e42..3153d2f2eb 100644 --- a/src/lib/libssl/src/crypto/gost/gostr341001_ameth.c +++ b/src/lib/libssl/src/crypto/gost/gostr341001_ameth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_ameth.c,v 1.8 2015/02/11 04:05:14 beck Exp $ */ | 1 | /* $OpenBSD: gostr341001_ameth.c,v 1.9 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -347,9 +347,9 @@ pub_print_gost01(BIO *out, const EVP_PKEY *pkey, int indent, ASN1_PCTX *pctx) | |||
347 | return 0; | 347 | return 0; |
348 | } | 348 | } |
349 | BN_CTX_start(ctx); | 349 | BN_CTX_start(ctx); |
350 | X = BN_CTX_get(ctx); | 350 | if ((X = BN_CTX_get(ctx)) == NULL) |
351 | Y = BN_CTX_get(ctx); | 351 | goto err; |
352 | if (X == NULL || Y == NULL) | 352 | if ((Y = BN_CTX_get(ctx)) == NULL) |
353 | goto err; | 353 | goto err; |
354 | pubkey = GOST_KEY_get0_public_key(pkey->pkey.gost); | 354 | pubkey = GOST_KEY_get0_public_key(pkey->pkey.gost); |
355 | group = GOST_KEY_get0_group(pkey->pkey.gost); | 355 | group = GOST_KEY_get0_group(pkey->pkey.gost); |
diff --git a/src/lib/libssl/src/crypto/gost/gostr341001_key.c b/src/lib/libssl/src/crypto/gost/gostr341001_key.c index f00d361d3f..dbe360620a 100644 --- a/src/lib/libssl/src/crypto/gost/gostr341001_key.c +++ b/src/lib/libssl/src/crypto/gost/gostr341001_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_key.c,v 1.4 2015/02/11 03:19:37 doug Exp $ */ | 1 | /* $OpenBSD: gostr341001_key.c,v 1.5 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -198,9 +198,9 @@ GOST_KEY_set_public_key_affine_coordinates(GOST_KEY *key, BIGNUM *x, BIGNUM *y) | |||
198 | if (point == NULL) | 198 | if (point == NULL) |
199 | goto err; | 199 | goto err; |
200 | 200 | ||
201 | tx = BN_CTX_get(ctx); | 201 | if ((tx = BN_CTX_get(ctx)) == NULL) |
202 | ty = BN_CTX_get(ctx); | 202 | goto err; |
203 | if (ty == NULL) | 203 | if ((ty = BN_CTX_get(ctx)) == NULL) |
204 | goto err; | 204 | goto err; |
205 | if (EC_POINT_set_affine_coordinates_GFp(key->group, point, x, y, | 205 | if (EC_POINT_set_affine_coordinates_GFp(key->group, point, x, y, |
206 | ctx) == 0) | 206 | ctx) == 0) |
diff --git a/src/lib/libssl/src/crypto/gost/gostr341001_pmeth.c b/src/lib/libssl/src/crypto/gost/gostr341001_pmeth.c index 0157996a40..a297587c62 100644 --- a/src/lib/libssl/src/crypto/gost/gostr341001_pmeth.c +++ b/src/lib/libssl/src/crypto/gost/gostr341001_pmeth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gostr341001_pmeth.c,v 1.10 2015/02/11 04:05:14 beck Exp $ */ | 1 | /* $OpenBSD: gostr341001_pmeth.c,v 1.11 2015/02/14 06:40:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 3 | * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
4 | * Copyright (c) 2005-2006 Cryptocom LTD | 4 | * Copyright (c) 2005-2006 Cryptocom LTD |
@@ -324,10 +324,11 @@ gost01_VKO_key(EVP_PKEY *pub_key, EVP_PKEY *priv_key, const unsigned char *ukm, | |||
324 | return 0; | 324 | return 0; |
325 | 325 | ||
326 | BN_CTX_start(ctx); | 326 | BN_CTX_start(ctx); |
327 | UKM = BN_CTX_get(ctx); | 327 | if ((UKM = BN_CTX_get(ctx)) == NULL) |
328 | X = BN_CTX_get(ctx); | 328 | goto err; |
329 | Y = BN_CTX_get(ctx); | 329 | if ((X = BN_CTX_get(ctx)) == NULL) |
330 | if (Y == NULL) | 330 | goto err; |
331 | if ((Y = BN_CTX_get(ctx)) == NULL) | ||
331 | goto err; | 332 | goto err; |
332 | 333 | ||
333 | GOST_le2bn(ukm, 8, UKM); | 334 | GOST_le2bn(ukm, 8, UKM); |