mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
Reject unknown warning alerts in TLSv1.3
Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3436)
This commit is contained in:
parent
c2bdf05f4b
commit
f66f8a4491
@ -1488,6 +1488,15 @@ int ssl3_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf,
|
||||
s->shutdown |= SSL_RECEIVED_SHUTDOWN;
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* Apart from close_notify the only other warning alert in TLSv1.3
|
||||
* is user_cancelled - which we just ignore.
|
||||
*/
|
||||
if (SSL_IS_TLS13(s) && alert_descr != SSL_AD_USER_CANCELLED) {
|
||||
al = SSL_AD_ILLEGAL_PARAMETER;
|
||||
SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_UNKNOWN_ALERT_TYPE);
|
||||
goto f_err;
|
||||
}
|
||||
/*
|
||||
* This is a warning but we receive it if we requested
|
||||
* renegotiation and the peer denied it. Terminate with a fatal
|
||||
@ -1496,7 +1505,7 @@ int ssl3_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf,
|
||||
* future we might have a renegotiation where we don't care if
|
||||
* the peer refused it where we carry on.
|
||||
*/
|
||||
else if (alert_descr == SSL_AD_NO_RENEGOTIATION) {
|
||||
if (alert_descr == SSL_AD_NO_RENEGOTIATION) {
|
||||
al = SSL_AD_HANDSHAKE_FAILURE;
|
||||
SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_NO_RENEGOTIATION);
|
||||
goto f_err;
|
||||
|
Loading…
Reference in New Issue
Block a user