summaryrefslogtreecommitdiff
path: root/crypto/dsa/dsa_gen.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2018-08-14 16:18:14 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2018-08-14 16:18:14 +0000
commit43a67e02da9068b94df1c07fc6f0d70bafd9263b (patch)
treeded01a82a7afcee0e7b8a379adbe42bd68ae3ce5 /crypto/dsa/dsa_gen.c
parent02be298e504b8554caca6dc85af450e1ea44d19d (diff)
Notes
Diffstat (limited to 'crypto/dsa/dsa_gen.c')
-rw-r--r--crypto/dsa/dsa_gen.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/crypto/dsa/dsa_gen.c b/crypto/dsa/dsa_gen.c
index 21af2e159fb2..db52a38a1882 100644
--- a/crypto/dsa/dsa_gen.c
+++ b/crypto/dsa/dsa_gen.c
@@ -146,9 +146,16 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,
/* invalid q size */
return 0;
- if (evpmd == NULL)
- /* use SHA1 as default */
- evpmd = EVP_sha1();
+ if (evpmd == NULL) {
+ if (qsize == SHA_DIGEST_LENGTH)
+ evpmd = EVP_sha1();
+ else if (qsize == SHA224_DIGEST_LENGTH)
+ evpmd = EVP_sha224();
+ else
+ evpmd = EVP_sha256();
+ } else {
+ qsize = EVP_MD_size(evpmd);
+ }
if (bits < 512)
bits = 512;