Add new error code PLATFORM_ALLOC_FAILED for mbedtls_platform_memmove()
Signed-off-by: Piotr Nowicki <piotr.nowicki@arm.com>
This commit is contained in:
parent
5d5841f450
commit
ce0aab4474
9 changed files with 23 additions and 19 deletions
|
@ -558,11 +558,7 @@ static int mpi_write_hlp( mbedtls_mpi *X, int radix,
|
|||
length++;
|
||||
} while( mbedtls_mpi_cmp_int( X, 0 ) != 0 );
|
||||
|
||||
if( 0 != mbedtls_platform_memmove( *p, p_end, length ) )
|
||||
{
|
||||
ret = MBEDTLS_ERR_MPI_ALLOC_FAILED;
|
||||
goto cleanup;
|
||||
}
|
||||
MBEDTLS_MPI_CHK( mbedtls_platform_memmove( *p, p_end, length ) );
|
||||
*p += length;
|
||||
|
||||
cleanup:
|
||||
|
|
|
@ -843,6 +843,8 @@ void mbedtls_strerror( int ret, char *buf, size_t buflen )
|
|||
mbedtls_snprintf( buf, buflen, "PLATFORM - The requested feature is not supported by the platform" );
|
||||
if( use_ret == -(MBEDTLS_ERR_PLATFORM_FAULT_DETECTED) )
|
||||
mbedtls_snprintf( buf, buflen, "PLATFORM - A hardware fault was detected in a critical path. As a security precaution this should be treated as a potential physical attack" );
|
||||
if( use_ret == -(MBEDTLS_ERR_PLATFORM_ALLOC_FAILED) )
|
||||
mbedtls_snprintf( buf, buflen, "PLATFORM - Memory allocation failed" );
|
||||
#endif /* MBEDTLS_PLATFORM_C */
|
||||
|
||||
#if defined(MBEDTLS_POLY1305_C)
|
||||
|
|
|
@ -222,9 +222,10 @@ int mbedtls_nist_kw_wrap( mbedtls_nist_kw_context *ctx,
|
|||
}
|
||||
|
||||
mbedtls_platform_memcpy( output, NIST_KW_ICV1, KW_SEMIBLOCK_LENGTH );
|
||||
if( 0 != mbedtls_platform_memmove( output + KW_SEMIBLOCK_LENGTH, input, in_len ) )
|
||||
ret = mbedtls_platform_memmove( output + KW_SEMIBLOCK_LENGTH, input, in_len );
|
||||
if( ret != 0 )
|
||||
{
|
||||
return MBEDTLS_ERR_CIPHER_ALLOC_FAILED;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -346,10 +347,11 @@ static int unwrap( mbedtls_nist_kw_context *ctx,
|
|||
}
|
||||
|
||||
mbedtls_platform_memcpy( A, input, KW_SEMIBLOCK_LENGTH );
|
||||
if( 0 != mbedtls_platform_memmove( output, input + KW_SEMIBLOCK_LENGTH,
|
||||
( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH ) )
|
||||
ret = mbedtls_platform_memmove( output, input + KW_SEMIBLOCK_LENGTH,
|
||||
( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH );
|
||||
if( ret != 0 )
|
||||
{
|
||||
return( MBEDTLS_ERR_CIPHER_ALLOC_FAILED );
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Calculate intermediate values */
|
||||
|
|
12
library/pk.c
12
library/pk.c
|
@ -623,15 +623,17 @@ static int asn1_write_mpibuf( unsigned char **p, unsigned char *start,
|
|||
size_t n_len )
|
||||
{
|
||||
size_t len = 0;
|
||||
int ret = MBEDTLS_ERR_PLATFORM_FAULT_DETECTED;
|
||||
|
||||
if( (size_t)( *p - start ) < n_len )
|
||||
return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL );
|
||||
|
||||
len = n_len;
|
||||
*p -= len;
|
||||
if( 0 != mbedtls_platform_memmove( *p, start, len ) )
|
||||
ret = mbedtls_platform_memmove( *p, start, len );
|
||||
if( ret != 0 )
|
||||
{
|
||||
return( MBEDTLS_ERR_PK_ALLOC_FAILED );
|
||||
return( ret );
|
||||
}
|
||||
|
||||
/* ASN.1 DER encoding requires minimal length, so skip leading 0s.
|
||||
|
@ -694,11 +696,11 @@ static int pk_ecdsa_sig_asn1_from_uecc( unsigned char *sig, size_t *sig_len,
|
|||
*--p = MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE;
|
||||
len += 2;
|
||||
|
||||
if( 0 != mbedtls_platform_memmove( sig, p, len ) )
|
||||
ret = mbedtls_platform_memmove( sig, p, len );
|
||||
if( ret != 0 )
|
||||
{
|
||||
return( MBEDTLS_ERR_PK_ALLOC_FAILED );
|
||||
return( ret );
|
||||
}
|
||||
ret = 0;
|
||||
*sig_len = len;
|
||||
|
||||
return( ret );
|
||||
|
|
|
@ -141,7 +141,7 @@ int mbedtls_platform_memmove( void *dst, const void *src, size_t num )
|
|||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
return MBEDTLS_ERR_PLATFORM_ALLOC_FAILED;
|
||||
}
|
||||
|
||||
int mbedtls_platform_memcmp( const void *buf1, const void *buf2, size_t num )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue