tls-crypto: Add support for RSA-PSS signatures
PKCS#1 v1.5 signatures are not defined for use with TLS 1.3 (they can only appear in certificates, we now send a signature_algorithms_cert extension to indicate support for them). So for RSA certificates, we must support RSA-PSS signatures. There are two sets of schemes, that are differentiated by the type of RSA key used for the signature, one is for classic RSA keys (rsaEncryption OID), which can also be used with PKCS#1 when using TLS 1.2, the other is for RSA-PSS keys (RSASSA-PSS OID), which are not yet commonly used (and can't be generated by our pki tool). According to the RFC, PSS must also be supported for TLS 1.2 if the schemes are included in the signature_algorithms extension (e.g. OpenSSL does not use PKCS#1 v1.5 anymore if PSS is proposed). This changes how these schemes are stored and enumerated (they are not treated as combination of hash algo and key type anymore). Legacy schemes (MD5/SHA-1) are removed.
This commit is contained in:
@@ -777,7 +777,7 @@ static status_t send_certificate_request(private_tls_server_t *this,
|
||||
supported->destroy(supported);
|
||||
if (this->tls->get_version_max(this->tls) >= TLS_1_2)
|
||||
{
|
||||
this->crypto->get_signature_algorithms(this->crypto, writer);
|
||||
this->crypto->get_signature_algorithms(this->crypto, writer, TRUE);
|
||||
}
|
||||
|
||||
authorities = bio_writer_create(64);
|
||||
|
||||
Reference in New Issue
Block a user