Continuing TLS v1.2 support: add support for server parsing of
signature algorithms extension and correct signature format for server key exchange. All ciphersuites should now work on the server but no client support and no client certificate support yet.
This commit is contained in:
@@ -160,6 +160,21 @@ int SSL_get_ex_data_X509_STORE_CTX_idx(void)
|
||||
return ssl_x509_store_ctx_idx;
|
||||
}
|
||||
|
||||
static void ssl_cert_set_default_md(CERT *cert)
|
||||
{
|
||||
/* Set digest values to defaults */
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
cert->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_dss1();
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RSA
|
||||
cert->pkeys[SSL_PKEY_RSA_SIGN].digest = EVP_sha1();
|
||||
cert->pkeys[SSL_PKEY_RSA_ENC].digest = EVP_sha1();
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_ECDSA
|
||||
cert->pkeys[SSL_PKEY_ECC].digest = EVP_ecdsa();
|
||||
#endif
|
||||
}
|
||||
|
||||
CERT *ssl_cert_new(void)
|
||||
{
|
||||
CERT *ret;
|
||||
@@ -174,7 +189,7 @@ CERT *ssl_cert_new(void)
|
||||
|
||||
ret->key= &(ret->pkeys[SSL_PKEY_RSA_ENC]);
|
||||
ret->references=1;
|
||||
|
||||
ssl_cert_set_default_md(ret);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
@@ -307,6 +322,10 @@ CERT *ssl_cert_dup(CERT *cert)
|
||||
* chain is held inside SSL_CTX */
|
||||
|
||||
ret->references=1;
|
||||
/* Set digests to defaults. NB: we don't copy existing values as they
|
||||
* will be set during handshake.
|
||||
*/
|
||||
ssl_cert_set_default_md(ret);
|
||||
|
||||
return(ret);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user