Fix RSA structure
authorRichard Levitte <levitte@openssl.org>
Thu, 12 Mar 2020 05:26:34 +0000 (06:26 +0100)
committerRichard Levitte <levitte@openssl.org>
Sat, 14 Mar 2020 03:33:24 +0000 (04:33 +0100)
commitca7f7b951825e23dddb798f6a61f50a04225d25a
tree929cee6b2beae995d0dad6a8932c06be7c9151a6
parentca50d69cfe51f742ca052201fe4c5d851b28ae6c
Fix RSA structure

The first field was called 'pad', but not for the reason one might
think.  It was really a padding int that was always zero, and was
placed first on purpose.  This is to pick up programming errors where
an RSA pointer was passed when an EVP_PKEY pointer should have been,
an makes it look like an EVP_PKEY structure with type EVP_PKEY_NONE,
which effectively avoids any further processing (and unintended
corruption of the RSA structure).

This is only relevant for legacy structure and EVP_PKEY_METHODs.  With
providers, EVP_PKEYs aren't passed to the backend anyway.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/11315)
crypto/rsa/rsa_local.h