summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/dsa/dsa.h9
-rw-r--r--src/lib/libcrypto/dsa/dsa_gen.c14
2 files changed, 12 insertions, 11 deletions
diff --git a/src/lib/libcrypto/dsa/dsa.h b/src/lib/libcrypto/dsa/dsa.h
index 63e5cedb1c..9f3d561239 100644
--- a/src/lib/libcrypto/dsa/dsa.h
+++ b/src/lib/libcrypto/dsa/dsa.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa.h,v 1.45 2024/12/05 19:29:08 tb Exp $ */ 1/* $OpenBSD: dsa.h,v 1.46 2024/12/05 19:34:46 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 *
@@ -177,13 +177,6 @@ int DSA_print(BIO *bp, const DSA *x, int off);
177int DSAparams_print_fp(FILE *fp, const DSA *x); 177int DSAparams_print_fp(FILE *fp, const DSA *x);
178int DSA_print_fp(FILE *bp, const DSA *x, int off); 178int DSA_print_fp(FILE *bp, const DSA *x, int off);
179 179
180/*
181 * Primality test according to FIPS PUB 186-4, Appendix C.3. Set the number
182 * to 64 rounds of Miller-Rabin, which corresponds to 128 bits of security.
183 * This is necessary for keys of size >= 3072.
184 */
185#define DSS_prime_checks 64
186
187#ifndef OPENSSL_NO_DH 180#ifndef OPENSSL_NO_DH
188/* Convert DSA structure (key or just parameters) into DH structure 181/* Convert DSA structure (key or just parameters) into DH structure
189 * (be careful to avoid small subgroup attacks when using this!) */ 182 * (be careful to avoid small subgroup attacks when using this!) */
diff --git a/src/lib/libcrypto/dsa/dsa_gen.c b/src/lib/libcrypto/dsa/dsa_gen.c
index dc04eba032..a79d0f9e20 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.32 2024/05/11 06:43:50 tb Exp $ */ 1/* $OpenBSD: dsa_gen.c,v 1.33 2024/12/05 19:34:46 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 *
@@ -71,6 +71,14 @@
71#include "bn_local.h" 71#include "bn_local.h"
72#include "dsa_local.h" 72#include "dsa_local.h"
73 73
74/*
75 * Primality test according to FIPS PUB 186-4, Appendix C.3. Set the number
76 * to 64 rounds of Miller-Rabin, which corresponds to 128 bits of security.
77 * This is necessary for keys of size >= 3072.
78 * XXX - now that we do BPSW the recommendation is to do 2 for p and 27 for q.
79 */
80#define DSA_prime_checks 64
81
74int 82int
75DSA_generate_parameters_ex(DSA *ret, int bits, const unsigned char *seed_in, 83DSA_generate_parameters_ex(DSA *ret, int bits, const unsigned char *seed_in,
76 int seed_len, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb) 84 int seed_len, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb)
@@ -207,7 +215,7 @@ dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd,
207 goto err; 215 goto err;
208 216
209 /* step 4 */ 217 /* step 4 */
210 r = BN_is_prime_fasttest_ex(q, DSS_prime_checks, ctx, 218 r = BN_is_prime_fasttest_ex(q, DSA_prime_checks, ctx,
211 seed_is_random, cb); 219 seed_is_random, cb);
212 if (r > 0) 220 if (r > 0)
213 break; 221 break;
@@ -278,7 +286,7 @@ dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd,
278 /* step 10 */ 286 /* step 10 */
279 if (BN_cmp(p, test) >= 0) { 287 if (BN_cmp(p, test) >= 0) {
280 /* step 11 */ 288 /* step 11 */
281 r = BN_is_prime_fasttest_ex(p, DSS_prime_checks, 289 r = BN_is_prime_fasttest_ex(p, DSA_prime_checks,
282 ctx, 1, cb); 290 ctx, 1, cb);
283 if (r > 0) 291 if (r > 0)
284 goto end; /* found it */ 292 goto end; /* found it */