Use cipher_crypt() in ssl_tls.c
This commit is contained in:
parent
3c1d150b3d
commit
8764d271fa
1 changed files with 20 additions and 112 deletions
|
@ -1056,25 +1056,13 @@ static int ssl_encrypt_buf( ssl_context *ssl )
|
||||||
SSL_DEBUG_BUF( 4, "before encrypt: output payload",
|
SSL_DEBUG_BUF( 4, "before encrypt: output payload",
|
||||||
ssl->out_msg, ssl->out_msglen );
|
ssl->out_msg, ssl->out_msglen );
|
||||||
|
|
||||||
if( ( ret = cipher_reset( &ssl->transform_out->cipher_ctx_enc ) ) != 0 )
|
if( ( ret = cipher_crypt( &ssl->transform_out->cipher_ctx_enc,
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_reset", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_set_iv( &ssl->transform_out->cipher_ctx_enc,
|
|
||||||
ssl->transform_out->iv_enc,
|
ssl->transform_out->iv_enc,
|
||||||
ssl->transform_out->ivlen ) ) != 0 )
|
ssl->transform_out->ivlen,
|
||||||
|
ssl->out_msg, ssl->out_msglen,
|
||||||
|
ssl->out_msg, &olen ) ) != 0 )
|
||||||
{
|
{
|
||||||
SSL_DEBUG_RET( 1, "cipher_set_iv", ret );
|
SSL_DEBUG_RET( 1, "cipher_crypt", ret );
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_update( &ssl->transform_out->cipher_ctx_enc,
|
|
||||||
ssl->out_msg, ssl->out_msglen, ssl->out_msg,
|
|
||||||
&olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_update", ret );
|
|
||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1084,20 +1072,6 @@ static int ssl_encrypt_buf( ssl_context *ssl )
|
||||||
ssl->out_msglen, olen ) );
|
ssl->out_msglen, olen ) );
|
||||||
return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
|
return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( ret = cipher_finish( &ssl->transform_out->cipher_ctx_enc,
|
|
||||||
ssl->out_msg + olen, &olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_finish", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( 0 != olen )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_MSG( 1, ( "total encrypted length incorrect %d %d",
|
|
||||||
0, olen ) );
|
|
||||||
return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* POLARSSL_ARC4_C || POLARSSL_CIPHER_NULL_CIPHER */
|
#endif /* POLARSSL_ARC4_C || POLARSSL_CIPHER_NULL_CIPHER */
|
||||||
|
@ -1261,34 +1235,13 @@ static int ssl_encrypt_buf( ssl_context *ssl )
|
||||||
SSL_DEBUG_BUF( 4, "before encrypt: output payload",
|
SSL_DEBUG_BUF( 4, "before encrypt: output payload",
|
||||||
ssl->out_iv, ssl->out_msglen );
|
ssl->out_iv, ssl->out_msglen );
|
||||||
|
|
||||||
if( ( ret = cipher_reset( &ssl->transform_out->cipher_ctx_enc ) ) != 0 )
|
if( ( ret = cipher_crypt( &ssl->transform_out->cipher_ctx_enc,
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_reset", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_set_iv( &ssl->transform_out->cipher_ctx_enc,
|
|
||||||
ssl->transform_out->iv_enc,
|
ssl->transform_out->iv_enc,
|
||||||
ssl->transform_out->ivlen ) ) != 0 )
|
ssl->transform_out->ivlen,
|
||||||
|
enc_msg, enc_msglen,
|
||||||
|
enc_msg, &olen ) ) != 0 )
|
||||||
{
|
{
|
||||||
SSL_DEBUG_RET( 1, "cipher_set_iv", ret );
|
SSL_DEBUG_RET( 1, "cipher_crypt", ret );
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_update( &ssl->transform_out->cipher_ctx_enc,
|
|
||||||
enc_msg, enc_msglen, enc_msg,
|
|
||||||
&olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_update", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
enc_msglen -= olen;
|
|
||||||
|
|
||||||
if( ( ret = cipher_finish( &ssl->transform_out->cipher_ctx_enc,
|
|
||||||
enc_msg + olen, &olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_finish", ret );
|
|
||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1364,25 +1317,13 @@ static int ssl_decrypt_buf( ssl_context *ssl )
|
||||||
|
|
||||||
padlen = 0;
|
padlen = 0;
|
||||||
|
|
||||||
if( ( ret = cipher_reset( &ssl->transform_in->cipher_ctx_dec ) ) != 0 )
|
if( ( ret = cipher_crypt( &ssl->transform_in->cipher_ctx_dec,
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_reset", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_set_iv( &ssl->transform_in->cipher_ctx_dec,
|
|
||||||
ssl->transform_in->iv_dec,
|
ssl->transform_in->iv_dec,
|
||||||
ssl->transform_in->ivlen ) ) != 0 )
|
ssl->transform_in->ivlen,
|
||||||
|
ssl->in_msg, ssl->in_msglen,
|
||||||
|
ssl->in_msg, &olen ) ) != 0 )
|
||||||
{
|
{
|
||||||
SSL_DEBUG_RET( 1, "cipher_set_iv", ret );
|
SSL_DEBUG_RET( 1, "cipher_crypt", ret );
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_update( &ssl->transform_in->cipher_ctx_dec,
|
|
||||||
ssl->in_msg, ssl->in_msglen, ssl->in_msg,
|
|
||||||
&olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_update", ret );
|
|
||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1391,19 +1332,6 @@ static int ssl_decrypt_buf( ssl_context *ssl )
|
||||||
SSL_DEBUG_MSG( 1, ( "total encrypted length incorrect" ) );
|
SSL_DEBUG_MSG( 1, ( "total encrypted length incorrect" ) );
|
||||||
return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
|
return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( ret = cipher_finish( &ssl->transform_in->cipher_ctx_dec,
|
|
||||||
ssl->in_msg + olen, &olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_finish", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( 0 != olen )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_MSG( 1, ( "total encrypted length incorrect" ) );
|
|
||||||
return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* POLARSSL_ARC4_C || POLARSSL_CIPHER_NULL_CIPHER */
|
#endif /* POLARSSL_ARC4_C || POLARSSL_CIPHER_NULL_CIPHER */
|
||||||
|
@ -1551,33 +1479,13 @@ static int ssl_decrypt_buf( ssl_context *ssl )
|
||||||
}
|
}
|
||||||
#endif /* POLARSSL_SSL_PROTO_TLS1_1 || POLARSSL_SSL_PROTO_TLS1_2 */
|
#endif /* POLARSSL_SSL_PROTO_TLS1_1 || POLARSSL_SSL_PROTO_TLS1_2 */
|
||||||
|
|
||||||
if( ( ret = cipher_reset( &ssl->transform_in->cipher_ctx_dec ) ) != 0 )
|
if( ( ret = cipher_crypt( &ssl->transform_in->cipher_ctx_dec,
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_reset", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_set_iv( &ssl->transform_in->cipher_ctx_dec,
|
|
||||||
ssl->transform_in->iv_dec,
|
ssl->transform_in->iv_dec,
|
||||||
ssl->transform_in->ivlen ) ) != 0 )
|
ssl->transform_in->ivlen,
|
||||||
|
dec_msg, dec_msglen,
|
||||||
|
dec_msg_result, &olen ) ) != 0 )
|
||||||
{
|
{
|
||||||
SSL_DEBUG_RET( 1, "cipher_set_iv", ret );
|
SSL_DEBUG_RET( 1, "cipher_crypt", ret );
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ret = cipher_update( &ssl->transform_in->cipher_ctx_dec,
|
|
||||||
dec_msg, dec_msglen, dec_msg_result,
|
|
||||||
&olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_update", ret );
|
|
||||||
return( ret );
|
|
||||||
}
|
|
||||||
|
|
||||||
dec_msglen -= olen;
|
|
||||||
if( ( ret = cipher_finish( &ssl->transform_in->cipher_ctx_dec,
|
|
||||||
dec_msg_result + olen, &olen ) ) != 0 )
|
|
||||||
{
|
|
||||||
SSL_DEBUG_RET( 1, "cipher_finish", ret );
|
|
||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue