diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 005b9feb4..c0ef1c54f 100755 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -1562,6 +1562,7 @@ psa_status_t psa_aead_encrypt( psa_key_slot_t key, mbedtls_ccm_free( &ccm ); } memcpy( ciphertext + plaintext_length, tag, sizeof( tag ) ); + *ciphertext_length = plaintext_length + sizeof( tag ); return( PSA_SUCCESS ); } @@ -1629,7 +1630,6 @@ psa_status_t psa_aead_decrypt( psa_key_slot_t key, } mbedtls_gcm_free( &gcm ); - memcpy( plaintext + ciphertext_length + 8, tag, sizeof( tag ) ); } else if( alg == PSA_ALG_CCM ) { @@ -1659,8 +1659,10 @@ psa_status_t psa_aead_decrypt( psa_key_slot_t key, } mbedtls_ccm_free( &ccm ); - memcpy( plaintext + ciphertext_length, tag, sizeof( tag ) ); } + + memcpy( plaintext + ciphertext_length, tag, sizeof( tag ) ); + *plaintext_length = ciphertext_length + sizeof( tag ); return( PSA_SUCCESS ); }