Allow EVP_PKEY_get0_RSA for RSA-PSS keys
authorTobias Nießen <tniessen@tnie.de>
Fri, 18 Oct 2019 18:44:49 +0000 (20:44 +0200)
committerMatt Caswell <matt@openssl.org>
Mon, 28 Oct 2019 11:11:34 +0000 (11:11 +0000)
RSA-PSS keys use the same internal structure as RSA keys but do not
allow accessing it through EVP_PKEY_get0_RSA. This commit changes that
behavior.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10217)

(cherry picked from commit 465a58b117d5a85623f3998d6fbf2fe8712a5604)

crypto/evp/p_lib.c

index e57fa9e289c90276380fa0c52e67ff29f8a46af5..72a23b4d5f8e06e74ecf8e086c14e4d427862c6d 100644 (file)
@@ -465,7 +465,7 @@ int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
 
 RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
 {
-    if (pkey->type != EVP_PKEY_RSA) {
+    if (pkey->type != EVP_PKEY_RSA && pkey->type != EVP_PKEY_RSA_PSS) {
         EVPerr(EVP_F_EVP_PKEY_GET0_RSA, EVP_R_EXPECTING_AN_RSA_KEY);
         return NULL;
     }