diff options
Diffstat (limited to 'src/lib/libcrypto/gost/gostr341001.c')
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/libcrypto/gost/gostr341001.c b/src/lib/libcrypto/gost/gostr341001.c index 13f053dae8..79fddb11b0 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.10 2022/11/26 16:08:53 tb Exp $ */ | 1 | /* $OpenBSD: gostr341001.c,v 1.11 2022/12/01 02:58:31 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 |
@@ -178,8 +178,10 @@ gost2001_do_sign(BIGNUM *md, GOST_KEY *eckey) | |||
178 | goto err; | 178 | goto err; |
179 | if (BN_mod_ct(e, md, order, ctx) == 0) | 179 | if (BN_mod_ct(e, md, order, ctx) == 0) |
180 | goto err; | 180 | goto err; |
181 | if (BN_is_zero(e)) | 181 | if (BN_is_zero(e)) { |
182 | BN_one(e); | 182 | if (!BN_one(e)) |
183 | goto err; | ||
184 | } | ||
183 | if ((k = BN_CTX_get(ctx)) == NULL) | 185 | if ((k = BN_CTX_get(ctx)) == NULL) |
184 | goto err; | 186 | goto err; |
185 | if ((X = BN_CTX_get(ctx)) == NULL) | 187 | if ((X = BN_CTX_get(ctx)) == NULL) |
@@ -289,8 +291,10 @@ gost2001_do_verify(BIGNUM *md, ECDSA_SIG *sig, GOST_KEY *ec) | |||
289 | 291 | ||
290 | if (BN_mod_ct(e, md, order, ctx) == 0) | 292 | if (BN_mod_ct(e, md, order, ctx) == 0) |
291 | goto err; | 293 | goto err; |
292 | if (BN_is_zero(e)) | 294 | if (BN_is_zero(e)) { |
293 | BN_one(e); | 295 | if (!BN_one(e)) |
296 | goto err; | ||
297 | } | ||
294 | if ((v = BN_mod_inverse_ct(v, e, order, ctx)) == NULL) | 298 | if ((v = BN_mod_inverse_ct(v, e, order, ctx)) == NULL) |
295 | goto err; | 299 | goto err; |
296 | if (BN_mod_mul(z1, sig->s, v, order, ctx) == 0) | 300 | if (BN_mod_mul(z1, sig->s, v, order, ctx) == 0) |