PKCS11: Refactor mpi_to_ck

Refactor mpi_to_ck to return zero on success, and
propagate mbedtls_mpi_write_binary error on fail
This commit is contained in:
Andrzej Kurek 2018-02-19 04:07:31 -05:00
parent 12603548fd
commit 9982e07a92

View file

@ -416,18 +416,19 @@ static int mpi_to_ck( const mbedtls_mpi *mpi,
CK_ATTRIBUTE *attr, CK_ATTRIBUTE_TYPE at, CK_ATTRIBUTE *attr, CK_ATTRIBUTE_TYPE at,
unsigned char **p, size_t len ) unsigned char **p, size_t len )
{ {
if( mbedtls_mpi_write_binary( mpi, *p, len ) != 0 ) int ret = mbedtls_mpi_write_binary( mpi, *p, len );
return( 0 ); if( ret != 0 )
return( ret );
attr->type = at; attr->type = at;
attr->pValue = *p; attr->pValue = *p;
attr->ulValueLen = len; attr->ulValueLen = len;
*p += len; *p += len;
return( 1 ); return( 0 );
} }
#define MPI_TO_CK( mpi, attr, at, p, len ) \ #define MPI_TO_CK( mpi, attr, at, p, len ) \
do \ do \
{ \ { \
if( !mpi_to_ck( ( mpi ), ( attr ), ( at ), ( p ), ( len ) ) ) \ if( mpi_to_ck( ( mpi ), ( attr ), ( at ), ( p ), ( len ) ) != 0) \
{ \ { \
rv = CKR_ARGUMENTS_BAD; \ rv = CKR_ARGUMENTS_BAD; \
goto exit; \ goto exit; \