gnutls_datum_t dconcat;
int ret;
const version_entry_st *ver = get_version(session);
+ const gnutls_sign_entry_st *se = _gnutls_sign_to_entry(sign_algo);
_gnutls_handshake_log
("HSK[%p]: verify TLS 1.2 handshake data: using %s\n", session,
if (ret < 0)
return gnutls_assert_val(ret);
+ if (unlikely(sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) == 0)) {
+ _gnutls_handshake_log("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
+ session, gnutls_pk_get_name(cert->pubkey->params.algo), se->name);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ }
+
ret =
_gnutls_session_sign_algo_enabled(session, sign_algo);
if (ret < 0)
{
int ret;
gnutls_datum_t dconcat;
+ const gnutls_sign_entry_st *se = _gnutls_sign_to_entry(sign_algo);
ret = _gnutls_session_sign_algo_enabled(session, sign_algo);
if (ret < 0)
return gnutls_assert_val(ret);
+ if (unlikely(sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) == 0)) {
+ _gnutls_handshake_log("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
+ session, gnutls_pk_get_name(cert->pubkey->params.algo), se->name);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ }
+
dconcat.data = session->internals.handshake_hash_buffer.data;
dconcat.size = session->internals.handshake_hash_buffer_prev_len;
gnutls_sign_algorithm_set_client(session, sign_algo);
+ if (unlikely(gnutls_sign_supports_pk_algorithm(sign_algo, pkey->pk_algorithm) == 0))
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+
_gnutls_debug_log("sign handshake cert vrfy: picked %s\n",
gnutls_sign_algorithm_get_name(sign_algo));
"-p", "@PORT@"]
},
{"name" : "test-rsa-pss-sigs-on-certificate-verify.py",
- "comment" : "FIXME: We shouldn't allow rsa_pss_pss* schemes as there is only RSA key #645",
+ "comment": "tlsfuzzer doesn't know ed25519 scheme which we advertise",
"arguments" : ["-k", "tests/clientX509Key.pem",
"-c", "tests/clientX509Cert.pem",
"-e", "check CertificateRequest sigalgs",
- "-e", "rsa_pss_pss_sha256 in CertificateVerify with rsa key",
- "-e", "rsa_pss_pss_sha384 in CertificateVerify with rsa key",
- "-e", "rsa_pss_pss_sha512 in CertificateVerify with rsa key",
+ "--illegpar",
"-n", "100",
"-p", "@PORT@"]
},