SSL_SIGN_RSA_PKCS1_MD5_SHA1 does not really exist, but is a private use value we allocated to internally represent the TLS 1.0/1.1 RSA signature algorithm. (Unlike the TLS 1.0/1.1 ECDSA signature algorithm, which is the same as SSL_SIGN_ECDSA_SHA1, the RSA one is a bespoke MD5+SHA1 concatenation which never appears in TLS 1.2 and up.) Although documented that you're not to use it with SSL_CTX_set_verify_algorithm_prefs and SSL_CTX_set_signing_algorithm_prefs (it only exists for SSL_PRIVATE_KEY_METHOD), there's nothing stopping a caller from passing it in. Were you to do so anyway, we'd get confused and sign or verify it at TLS 1.2. This CL is the first half of a fix: since we already have pkey_supports_algorithm that checks a (version, sigalg, key) tuple, that function should just know this is not a 1.2-compatible algorithm. A subsequent CL will also fix those APIs to not accept invalid values from the caller, since these invalid calls will still, e.g., dump garbage values on the wire. Change-Id: I119503f9742a17952ed08e5815fb3d1419fd4a12 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/55445 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com>fips-20230428
parent
7ad733c81a
commit
e8f57ca134
5 changed files with 89 additions and 11 deletions
Loading…
Reference in new issue