mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2026-07-30 16:26:33 +08:00
tls13: Rework mbedtls_ssl_tls13_fetch_handshake_msg()
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
parent
0c9d3d4a0f
commit
6c557a70f6
@ -53,19 +53,23 @@ int mbedtls_ssl_tls13_fetch_handshake_msg(mbedtls_ssl_context *ssl,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if ((ret = mbedtls_ssl_read_record(ssl, 0)) != 0) {
|
ret = mbedtls_ssl_read_record(ssl, 0);
|
||||||
|
if (ret != 0) {
|
||||||
MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret);
|
MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret);
|
||||||
goto cleanup;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE;
|
||||||
if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ||
|
if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ||
|
||||||
ssl->in_msg[0] != hs_type ||
|
ssl->in_msg[0] != hs_type) {
|
||||||
(require_record_boundary && (ssl->in_hslen != ssl->in_msglen))) {
|
|
||||||
MBEDTLS_SSL_DEBUG_MSG(1, ("Receive unexpected handshake message."));
|
MBEDTLS_SSL_DEBUG_MSG(1, ("Receive unexpected handshake message."));
|
||||||
MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE,
|
goto error;
|
||||||
MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE);
|
}
|
||||||
ret = MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE;
|
|
||||||
goto cleanup;
|
if (require_record_boundary && (ssl->in_hslen != ssl->in_msglen)) {
|
||||||
|
MBEDTLS_SSL_DEBUG_MSG(1, ("Handshake message %s end not aligned with a record boundary",
|
||||||
|
mbedtls_ssl_get_hs_msg_name(hs_type)));
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -75,11 +79,15 @@ int mbedtls_ssl_tls13_fetch_handshake_msg(mbedtls_ssl_context *ssl,
|
|||||||
* uint24 length;
|
* uint24 length;
|
||||||
* ...
|
* ...
|
||||||
*/
|
*/
|
||||||
*buf = ssl->in_msg + 4;
|
*buf = ssl->in_msg + 4;
|
||||||
*buf_len = ssl->in_hslen - 4;
|
*buf_len = ssl->in_hslen - 4;
|
||||||
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
error:
|
||||||
|
if (ret == MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE) {
|
||||||
|
MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE,
|
||||||
|
MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user