summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/dh/dh_check.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/dh/dh_check.c')
-rw-r--r--src/lib/libcrypto/dh/dh_check.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/lib/libcrypto/dh/dh_check.c b/src/lib/libcrypto/dh/dh_check.c
index 57330b2068..a880f9fca1 100644
--- a/src/lib/libcrypto/dh/dh_check.c
+++ b/src/lib/libcrypto/dh/dh_check.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dh_check.c,v 1.29 2024/08/30 17:44:56 tb Exp $ */ 1/* $OpenBSD: dh_check.c,v 1.30 2024/11/29 15:59:57 tb 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 *
@@ -127,10 +127,8 @@ DH_check(const DH *dh, int *flags)
127 BN_CTX_start(ctx); 127 BN_CTX_start(ctx);
128 128
129 if (dh->q != NULL) { 129 if (dh->q != NULL) {
130 BIGNUM *quotient, *residue; 130 BIGNUM *residue;
131 131
132 if ((quotient = BN_CTX_get(ctx)) == NULL)
133 goto err;
134 if ((residue = BN_CTX_get(ctx)) == NULL) 132 if ((residue = BN_CTX_get(ctx)) == NULL)
135 goto err; 133 goto err;
136 if ((*flags & DH_NOT_SUITABLE_GENERATOR) == 0) { 134 if ((*flags & DH_NOT_SUITABLE_GENERATOR) == 0) {
@@ -147,12 +145,10 @@ DH_check(const DH *dh, int *flags)
147 if (is_prime == 0) 145 if (is_prime == 0)
148 *flags |= DH_CHECK_Q_NOT_PRIME; 146 *flags |= DH_CHECK_Q_NOT_PRIME;
149 /* Check p == 1 mod q, i.e., q divides p - 1 */ 147 /* Check p == 1 mod q, i.e., q divides p - 1 */
150 if (!BN_div_ct(quotient, residue, dh->p, dh->q, ctx)) 148 if (!BN_div_ct(NULL, residue, dh->p, dh->q, ctx))
151 goto err; 149 goto err;
152 if (!BN_is_one(residue)) 150 if (!BN_is_one(residue))
153 *flags |= DH_CHECK_INVALID_Q_VALUE; 151 *flags |= DH_CHECK_INVALID_Q_VALUE;
154 if (dh->j != NULL && BN_cmp(dh->j, quotient) != 0)
155 *flags |= DH_CHECK_INVALID_J_VALUE;
156 } 152 }
157 153
158 is_prime = BN_is_prime_ex(dh->p, DH_NUMBER_ITERATIONS_FOR_PRIME, 154 is_prime = BN_is_prime_ex(dh->p, DH_NUMBER_ITERATIONS_FOR_PRIME,