summaryrefslogtreecommitdiffstats
path: root/crypto/openssl/crypto/dsa
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2015-12-03 21:18:48 +0000
committerjkim <jkim@FreeBSD.org>2015-12-03 21:18:48 +0000
commitfdc1215ebe5182b5e2cd7afb01377a6d2e5d5781 (patch)
tree96586bfb12cf0a48212a27e95bfcefd19843fef0 /crypto/openssl/crypto/dsa
parent68a4f44cfaf14b23814241e38f291d7c61c65198 (diff)
downloadFreeBSD-src-fdc1215ebe5182b5e2cd7afb01377a6d2e5d5781.zip
FreeBSD-src-fdc1215ebe5182b5e2cd7afb01377a6d2e5d5781.tar.gz
Merge OpenSSL 1.0.1q.
Diffstat (limited to 'crypto/openssl/crypto/dsa')
-rw-r--r--crypto/openssl/crypto/dsa/dsa_ameth.c1
-rw-r--r--crypto/openssl/crypto/dsa/dsa_gen.c19
2 files changed, 7 insertions, 13 deletions
diff --git a/crypto/openssl/crypto/dsa/dsa_ameth.c b/crypto/openssl/crypto/dsa/dsa_ameth.c
index a2840ea..6ddef45 100644
--- a/crypto/openssl/crypto/dsa/dsa_ameth.c
+++ b/crypto/openssl/crypto/dsa/dsa_ameth.c
@@ -318,6 +318,7 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
dplen = i2d_ASN1_INTEGER(prkey, &dp);
ASN1_STRING_clear_free(prkey);
+ prkey = NULL;
if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(NID_dsa), 0,
V_ASN1_SEQUENCE, params, dp, dplen))
diff --git a/crypto/openssl/crypto/dsa/dsa_gen.c b/crypto/openssl/crypto/dsa/dsa_gen.c
index d686ab0..34c6113 100644
--- a/crypto/openssl/crypto/dsa/dsa_gen.c
+++ b/crypto/openssl/crypto/dsa/dsa_gen.c
@@ -112,16 +112,8 @@ int DSA_generate_parameters_ex(DSA *ret, int bits,
}
# endif
else {
- const EVP_MD *evpmd;
- size_t qbits = bits >= 2048 ? 256 : 160;
-
- if (bits >= 2048) {
- qbits = 256;
- evpmd = EVP_sha256();
- } else {
- qbits = 160;
- evpmd = EVP_sha1();
- }
+ const EVP_MD *evpmd = bits >= 2048 ? EVP_sha256() : EVP_sha1();
+ size_t qbits = EVP_MD_size(evpmd) * 8;
return dsa_builtin_paramgen(ret, bits, qbits, evpmd,
seed_in, seed_len, NULL, counter_ret,
@@ -174,13 +166,14 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,
if (seed_in != NULL)
memcpy(seed, seed_in, seed_len);
- if ((ctx = BN_CTX_new()) == NULL)
+ if ((mont = BN_MONT_CTX_new()) == NULL)
goto err;
- if ((mont = BN_MONT_CTX_new()) == NULL)
+ if ((ctx = BN_CTX_new()) == NULL)
goto err;
BN_CTX_start(ctx);
+
r0 = BN_CTX_get(ctx);
g = BN_CTX_get(ctx);
W = BN_CTX_get(ctx);
@@ -201,7 +194,7 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,
if (!BN_GENCB_call(cb, 0, m++))
goto err;
- if (!seed_len) {
+ if (!seed_len || !seed_in) {
if (RAND_pseudo_bytes(seed, qsize) < 0)
goto err;
seed_is_random = 1;
OpenPOWER on IntegriCloud