diff options
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ossl.c')
-rw-r--r-- | src/lib/libcrypto/dsa/dsa_ossl.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c index 301cdd5095..505ef800dc 100644 --- a/src/lib/libcrypto/dsa/dsa_ossl.c +++ b/src/lib/libcrypto/dsa/dsa_ossl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dsa_ossl.c,v 1.31 2018/04/28 14:22:21 tb Exp $ */ | 1 | /* $OpenBSD: dsa_ossl.c,v 1.32 2018/06/13 15:05:04 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 | * |
@@ -142,11 +142,8 @@ redo: | |||
142 | /* Compute s = inv(k) (m + xr) mod q */ | 142 | /* Compute s = inv(k) (m + xr) mod q */ |
143 | if (!BN_mod_mul(&xr, dsa->priv_key, r, dsa->q, ctx)) /* s = xr */ | 143 | if (!BN_mod_mul(&xr, dsa->priv_key, r, dsa->q, ctx)) /* s = xr */ |
144 | goto err; | 144 | goto err; |
145 | if (!BN_add(s, &xr, &m)) /* s = m + xr */ | 145 | if (!BN_mod_add(s, &xr, &m, dsa->q, ctx)) /* s = m + xr */ |
146 | goto err; | 146 | goto err; |
147 | if (BN_cmp(s, dsa->q) > 0) | ||
148 | if (!BN_sub(s, s, dsa->q)) | ||
149 | goto err; | ||
150 | if (!BN_mod_mul(s, s, kinv, dsa->q, ctx)) | 147 | if (!BN_mod_mul(s, s, kinv, dsa->q, ctx)) |
151 | goto err; | 148 | goto err; |
152 | 149 | ||