mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-01-28 11:22:20 +01:00
Merge pull request #9113 from SparkiDev/tls13_certvfy_sigalg_check
TLS 1.3: CertificateVerify - check sig alg was sent
This commit is contained in:
14
src/tls13.c
14
src/tls13.c
@@ -10118,12 +10118,26 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input,
|
||||
case TLS_ASYNC_BUILD:
|
||||
{
|
||||
int validSigAlgo;
|
||||
const Suites* suites = WOLFSSL_SUITES(ssl);
|
||||
word16 i;
|
||||
|
||||
/* Signature algorithm. */
|
||||
if ((args->idx - args->begin) + ENUM_LEN + ENUM_LEN > totalSz) {
|
||||
ERROR_OUT(BUFFER_ERROR, exit_dcv);
|
||||
}
|
||||
|
||||
validSigAlgo = 0;
|
||||
for (i = 0; i < suites->hashSigAlgoSz; i += 2) {
|
||||
if ((suites->hashSigAlgo[i + 0] == input[args->idx + 0]) &&
|
||||
(suites->hashSigAlgo[i + 1] == input[args->idx + 1])) {
|
||||
validSigAlgo = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!validSigAlgo) {
|
||||
ERROR_OUT(INVALID_PARAMETER, exit_dcv);
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_DUAL_ALG_CERTS
|
||||
if (ssl->peerSigSpec == NULL) {
|
||||
/* The peer did not respond. We didn't send CKS or they don't
|
||||
|
||||
Reference in New Issue
Block a user