mirror of
https://github.com/openssl/openssl.git
synced 2024-12-09 05:51:54 +08:00
d9a7510747
In TLSv1.2 a pre-master secret value is passed from the client to the server encrypted using RSA PKCS1 type 2 padding in a ClientKeyExchange message. As well as the normal formatting rules for RSA PKCA1 type 2 padding TLS imposes some additional rules about what constitutes a well formed key. Specifically it must be exactly the right length and encode the TLS version originally requested by the client (as opposed to the actual negotiated version) in its first two bytes. All of these checks need to be done in constant time and, if they fail, then the TLS implementation is supposed to continue anyway with a random key (and therefore the connection will fail later on). This avoids padding oracle type attacks. This commit implements this within the RSA padding code so that we keep all the constant time padding logic in one place. A later commit will remove it from libssl. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10411) |
||
---|---|---|
.. | ||
build.info | ||
rsa_ameth.c | ||
rsa_asn1.c | ||
rsa_chk.c | ||
rsa_crpt.c | ||
rsa_depr.c | ||
rsa_err.c | ||
rsa_gen.c | ||
rsa_lib.c | ||
rsa_local.h | ||
rsa_meth.c | ||
rsa_mp.c | ||
rsa_none.c | ||
rsa_oaep.c | ||
rsa_ossl.c | ||
rsa_pk1.c | ||
rsa_pmeth.c | ||
rsa_prn.c | ||
rsa_pss.c | ||
rsa_saos.c | ||
rsa_sign.c | ||
rsa_sp800_56b_check.c | ||
rsa_sp800_56b_gen.c | ||
rsa_ssl.c | ||
rsa_x931.c | ||
rsa_x931g.c |