aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Kurek <andrzej.kurek@arm.com>2018-02-19 04:07:31 -0500
committerAndrzej Kurek <andrzej.kurek@arm.com>2018-02-19 04:07:31 -0500
commit9982e07a9239a7efc25aece68274818a946c1d76 (patch)
tree8521db6138b08f9f6019bc15fe516848a25c96dc
parent12603548fdd17445f5963ae3abd10ff49b07ccef (diff)
downloadmbedtls-9982e07a9239a7efc25aece68274818a946c1d76.zip
mbedtls-9982e07a9239a7efc25aece68274818a946c1d76.tar.gz
mbedtls-9982e07a9239a7efc25aece68274818a946c1d76.tar.bz2
PKCS11: Refactor mpi_to_ck
Refactor mpi_to_ck to return zero on success, and propagate mbedtls_mpi_write_binary error on fail
-rw-r--r--library/pkcs11_client.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/library/pkcs11_client.c b/library/pkcs11_client.c
index e1b7e6d..cb803cd 100644
--- a/library/pkcs11_client.c
+++ b/library/pkcs11_client.c
@@ -416,23 +416,24 @@ static int mpi_to_ck( const mbedtls_mpi *mpi,
CK_ATTRIBUTE *attr, CK_ATTRIBUTE_TYPE at,
unsigned char **p, size_t len )
{
- if( mbedtls_mpi_write_binary( mpi, *p, len ) != 0 )
- return( 0 );
+ int ret = mbedtls_mpi_write_binary( mpi, *p, len );
+ if( ret != 0 )
+ return( ret );
attr->type = at;
attr->pValue = *p;
attr->ulValueLen = len;
*p += len;
- return( 1 );
+ return( 0 );
}
-#define MPI_TO_CK( mpi, attr, at, p, len ) \
- do \
- { \
- if( !mpi_to_ck( ( mpi ), ( attr ), ( at ), ( p ), ( len ) ) ) \
- { \
- rv = CKR_ARGUMENTS_BAD; \
- goto exit; \
- } \
- } \
+#define MPI_TO_CK( mpi, attr, at, p, len ) \
+ do \
+ { \
+ if( mpi_to_ck( ( mpi ), ( attr ), ( at ), ( p ), ( len ) ) != 0) \
+ { \
+ rv = CKR_ARGUMENTS_BAD; \
+ goto exit; \
+ } \
+ } \
while( 0 )
#endif /* defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECDSA_C) */