Copy CIDs into SSL transform if use of CID has been negotiated

This commit is contained in:
Hanno Becker 2019-04-26 16:22:27 +01:00
parent 1327fa7d14
commit 4bf7465840

View File

@ -933,6 +933,25 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl )
return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
}
#if defined(MBEDTLS_SSL_CID)
/* Copy own and peer's CID if the use of the CID
* extension has been negotiated. */
if( ssl->handshake->cid_in_use == MBEDTLS_SSL_CID_ENABLED )
{
MBEDTLS_SSL_DEBUG_MSG( 3, ( "Copy CIDs into SSL transform" ) );
transform->in_cid_len = ssl->own_cid_len;
transform->out_cid_len = ssl->handshake->peer_cid_len;
memcpy( transform->in_cid, ssl->own_cid, ssl->own_cid_len );
memcpy( transform->out_cid, ssl->handshake->peer_cid,
ssl->handshake->peer_cid_len );
MBEDTLS_SSL_DEBUG_BUF( 3, "Outgoing CID", transform->out_cid,
transform->out_cid_len );
MBEDTLS_SSL_DEBUG_BUF( 3, "Ingoing CID", transform->in_cid,
transform->in_cid_len );
}
#endif /* MBEDTLS_SSL_CID */
/*
* Set appropriate PRF function and other SSL / TLS / TLS1.2 functions
*/