mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Properly check for signature_algorithms from the client in a TLS 1.3 server.
The server was checking ssl->extensions which will always have an entry for TLSX_SIGNATURE_ALGORITHMS as it is unconditionally added by TLSX_PopulateExtensions earlier in the DoTls13ClientHello function. Instead, check args->clSuites->hashSigAlgoSz which is only set if signature_algorithms is found and parsed by TLSX_Parse.
This commit is contained in:
@ -7053,7 +7053,9 @@ int DoTls13ClientHello(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
|
|||||||
WOLFSSL_MSG("Client did not send a KeyShare extension");
|
WOLFSSL_MSG("Client did not send a KeyShare extension");
|
||||||
ERROR_OUT(INCOMPLETE_DATA, exit_dch);
|
ERROR_OUT(INCOMPLETE_DATA, exit_dch);
|
||||||
}
|
}
|
||||||
if (TLSX_Find(ssl->extensions, TLSX_SIGNATURE_ALGORITHMS) == NULL) {
|
/* Can't check ssl->extensions here as SigAlgs are unconditionally
|
||||||
|
set by TLSX_PopulateExtensions */
|
||||||
|
if (args->clSuites->hashSigAlgoSz == 0) {
|
||||||
WOLFSSL_MSG("Client did not send a SignatureAlgorithms extension");
|
WOLFSSL_MSG("Client did not send a SignatureAlgorithms extension");
|
||||||
ERROR_OUT(INCOMPLETE_DATA, exit_dch);
|
ERROR_OUT(INCOMPLETE_DATA, exit_dch);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user