From: Bodo Möller Date: Wed, 9 Jun 1999 23:12:08 +0000 (+0000) Subject: Repair PEM_write_PrivateKey and PEM_write_bio_PrivateKey. X-Git-Tag: OpenSSL_0_9_4~192 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0b977773d256063715a5a9b24d78ac31d1911b00;p=openssl Repair PEM_write_PrivateKey and PEM_write_bio_PrivateKey. --- diff --git a/crypto/pem/pem_all.c b/crypto/pem/pem_all.c index b283b6b4ba..bc473f3cff 100644 --- a/crypto/pem/pem_all.c +++ b/crypto/pem/pem_all.c @@ -102,5 +102,12 @@ IMPLEMENT_PEM_rw(DHparams, DH, PEM_STRING_DHPARAMS, DHparams) #endif -IMPLEMENT_PEM_rw_cb(PrivateKey, EVP_PKEY, PEM_STRING_EVP_PKEY, PrivateKey) +/* The PrivateKey case is not that straightforward. + * IMPLEMENT_PEM_rw_cb(PrivateKey, EVP_PKEY, PEM_STRING_EVP_PKEY, PrivateKey) + * does not work, RSA and DSA keys have specific strings. + * (When reading, parameter PEM_STRING_EVP_PKEY is a wildcard for anything + * appropriate.) + */ +IMPLEMENT_PEM_read(PrivateKey, EVP_PKEY, PEM_STRING_EVP_PKEY, PrivateKey) +IMPLEMENT_PEM_write_cb(PrivateKey, EVP_PKEY, ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA), PrivateKey)