mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-22 17:15:38 +01:00
Add a few check for context validity.
This commit is contained in:
parent
424fda5d7b
commit
f35b739dff
@ -118,6 +118,9 @@ int ecdh_make_params( ecdh_context *ctx, size_t *olen,
|
|||||||
int ret;
|
int ret;
|
||||||
size_t grp_len, pt_len;
|
size_t grp_len, pt_len;
|
||||||
|
|
||||||
|
if( ctx == NULL || ctx->grp.pbits == 0 )
|
||||||
|
return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
|
||||||
|
|
||||||
if( ( ret = ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q, f_rng, p_rng ) )
|
if( ( ret = ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q, f_rng, p_rng ) )
|
||||||
!= 0 )
|
!= 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
@ -149,6 +152,8 @@ int ecdh_read_params( ecdh_context *ctx,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
ecdh_init( ctx );
|
||||||
|
|
||||||
if( ( ret = ecp_tls_read_group( &ctx->grp, buf, end - *buf ) ) != 0 )
|
if( ( ret = ecp_tls_read_group( &ctx->grp, buf, end - *buf ) ) != 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
|
|
||||||
@ -169,6 +174,9 @@ int ecdh_make_public( ecdh_context *ctx, size_t *olen,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if( ctx == NULL || ctx->grp.pbits == 0 )
|
||||||
|
return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
|
||||||
|
|
||||||
if( ( ret = ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q, f_rng, p_rng ) )
|
if( ( ret = ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q, f_rng, p_rng ) )
|
||||||
!= 0 )
|
!= 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
@ -183,6 +191,9 @@ int ecdh_make_public( ecdh_context *ctx, size_t *olen,
|
|||||||
int ecdh_read_public( ecdh_context *ctx,
|
int ecdh_read_public( ecdh_context *ctx,
|
||||||
const unsigned char *buf, size_t blen )
|
const unsigned char *buf, size_t blen )
|
||||||
{
|
{
|
||||||
|
if( ctx == NULL )
|
||||||
|
return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
|
||||||
|
|
||||||
return ecp_tls_read_point( &ctx->grp, &ctx->Qp, &buf, blen );
|
return ecp_tls_read_point( &ctx->grp, &ctx->Qp, &buf, blen );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,6 +205,9 @@ int ecdh_calc_secret( ecdh_context *ctx, size_t *olen,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if( ctx == NULL )
|
||||||
|
return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
|
||||||
|
|
||||||
if( ( ret = ecdh_compute_shared( &ctx->grp, &ctx->z, &ctx->Qp, &ctx->d ) )
|
if( ( ret = ecdh_compute_shared( &ctx->grp, &ctx->z, &ctx->Qp, &ctx->d ) )
|
||||||
!= 0 )
|
!= 0 )
|
||||||
return( ret );
|
return( ret );
|
||||||
|
Loading…
Reference in New Issue
Block a user