RT3061: Don't SEGFAULT when trying to export a public DSA key as a private key.
Reviewed-by: Viktor Dukhovni <viktor@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit e19c93811f0db499c98d2888f1c0c0ab65e6238a)
This commit is contained in:
parent
9f96ea4c2b
commit
fe9b9a880f
@ -307,6 +307,12 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
|
|||||||
unsigned char *dp = NULL;
|
unsigned char *dp = NULL;
|
||||||
int dplen;
|
int dplen;
|
||||||
|
|
||||||
|
if (!pkey->pkey.dsa || !pkey->pkey.dsa->priv_key)
|
||||||
|
{
|
||||||
|
DSAerr(DSA_F_DSA_PRIV_ENCODE,DSA_R_MISSING_PARAMETERS);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
params = ASN1_STRING_new();
|
params = ASN1_STRING_new();
|
||||||
|
|
||||||
if (!params)
|
if (!params)
|
||||||
@ -701,4 +707,3 @@ const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[] =
|
|||||||
old_dsa_priv_encode
|
old_dsa_priv_encode
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user