const version_entry_st *version = get_version(session);
unsigned int is_dtls = IS_DTLS(session);
gnutls_kx_algorithm_t kx;
- gnutls_credentials_type_t cred_type;
+ gnutls_credentials_type_t cred_type = GNUTLS_CRD_CERTIFICATE; /* default for TLS1.3 */
unsigned int no_cert_found = 0;
const gnutls_group_entry_st *sgroup = NULL;
VERSION_CHECK(peer_clist->entry[i]);
kx = peer_clist->entry[i]->kx_algorithm;
- cred_type = _gnutls_map_kx_get_cred(kx, 1);
+
+ if (!version->tls13_sem)
+ cred_type = _gnutls_map_kx_get_cred(kx, 1);
for (j = 0; j < session->internals.priorities->cs.size; j++) {
if (session->internals.priorities->cs.entry[j] == peer_clist->entry[i]) {
if (session->internals.priorities->cs.entry[j] == peer_clist->entry[i]) {
sgroup = NULL;
kx = peer_clist->entry[i]->kx_algorithm;
- cred_type = _gnutls_map_kx_get_cred(kx, 1);
+
+ if (!version->tls13_sem)
+ cred_type = _gnutls_map_kx_get_cred(kx, 1);
if (!kx_is_ok(session, kx, cred_type, &sgroup))
break;
{
unsigned pk = pubkey->params.algo;
unsigned key_usage;
+ const version_entry_st *ver = get_version(session);
if (session->security_parameters.cert_type != cert_type) {
return 0;
key_usage = pubkey->key_usage;
}
- if (!_gnutls_kx_supports_pk_usage(cs->kx_algorithm, pk, key_usage)) {
+ if (!ver->tls13_sem && !_gnutls_kx_supports_pk_usage(cs->kx_algorithm, pk, key_usage)) {
return 0;
}