26#if defined(MBEDTLS_PSA_CRYPTO_C)
30#if defined(PSA_CRYPTO_DRIVER_TEST)
31#include "test/drivers/test_driver.h"
35#if defined(PSA_CRYPTO_DRIVER_TEST)
36#include "test/drivers/test_driver.h"
40#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
41#include "../3rdparty/p256-m/p256-m_driver_entrypoints.h"
51#define PSA_CRYPTO_MBED_TLS_DRIVER_ID (1)
52#define MBEDTLS_TEST_OPAQUE_DRIVER_ID (2)
53#define MBEDTLS_TEST_TRANSPARENT_DRIVER_ID (3)
54#define P256_TRANSPARENT_DRIVER_ID (4)
63#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
66#ifndef PSA_CRYPTO_DRIVER_PRESENT
67#define PSA_CRYPTO_DRIVER_PRESENT
72static inline psa_status_t psa_driver_wrapper_init(
void )
76#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
82#if defined(PSA_CRYPTO_DRIVER_TEST)
83 status = mbedtls_test_transparent_init( );
87 status = mbedtls_test_opaque_init( );
96static inline void psa_driver_wrapper_free(
void )
98#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
104#if defined(PSA_CRYPTO_DRIVER_TEST)
105 mbedtls_test_transparent_free( );
106 mbedtls_test_opaque_free( );
111static inline psa_status_t psa_driver_wrapper_sign_message(
114 size_t key_buffer_size,
119 size_t signature_size,
120 size_t *signature_length )
131#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
132#if defined(PSA_CRYPTO_DRIVER_TEST)
133 status = mbedtls_test_transparent_signature_sign_message(
151#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
152#if defined(PSA_CRYPTO_DRIVER_TEST)
153 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
154 status = mbedtls_test_opaque_signature_sign_message(
183 signature_length ) );
186static inline psa_status_t psa_driver_wrapper_verify_message(
189 size_t key_buffer_size,
194 size_t signature_length )
205#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
206#if defined(PSA_CRYPTO_DRIVER_TEST)
207 status = mbedtls_test_transparent_signature_verify_message(
224#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
225#if defined(PSA_CRYPTO_DRIVER_TEST)
226 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
227 return( mbedtls_test_opaque_signature_verify_message(
235 signature_length ) );
254 signature_length ) );
259 const uint8_t *key_buffer,
size_t key_buffer_size,
261 uint8_t *signature,
size_t signature_size,
size_t *signature_length )
264#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
270 if( drv->asymmetric ==
NULL ||
271 drv->asymmetric->p_sign ==
NULL )
276 return( drv->asymmetric->p_sign(
278 alg, hash, hash_length,
279 signature, signature_size, signature_length ) );
292#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
293#if defined(PSA_CRYPTO_DRIVER_TEST)
294 status = mbedtls_test_transparent_signature_sign_hash( attributes,
307#if defined (MBEDTLS_PSA_P256M_DRIVER_ENABLED)
311 psa_get_key_bits(attributes) == 256 )
313 status = p256_transparent_sign_hash( attributes,
336 signature_length ) );
339#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
340#if defined(PSA_CRYPTO_DRIVER_TEST)
341 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
342 return( mbedtls_test_opaque_signature_sign_hash( attributes,
350 signature_length ) );
360static inline psa_status_t psa_driver_wrapper_verify_hash(
362 const uint8_t *key_buffer,
size_t key_buffer_size,
364 const uint8_t *signature,
size_t signature_length )
367#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
373 if( drv->asymmetric ==
NULL ||
374 drv->asymmetric->p_verify ==
NULL )
379 return( drv->asymmetric->p_verify(
381 alg, hash, hash_length,
382 signature, signature_length ) );
395#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
396#if defined(PSA_CRYPTO_DRIVER_TEST)
397 status = mbedtls_test_transparent_signature_verify_hash(
410#if defined (MBEDTLS_PSA_P256M_DRIVER_ENABLED)
414 psa_get_key_bits(attributes) == 256 )
416 status = p256_transparent_verify_hash( attributes,
437 signature_length ) );
440#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
441#if defined(PSA_CRYPTO_DRIVER_TEST)
442 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
443 return( mbedtls_test_opaque_signature_verify_hash( attributes,
450 signature_length ) );
460static inline uint32_t psa_driver_wrapper_sign_hash_get_num_ops(
463 switch( operation->id )
469 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
472#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
473#if defined(PSA_CRYPTO_DRIVER_TEST)
484static inline uint32_t psa_driver_wrapper_verify_hash_get_num_ops(
487 switch( operation->id )
493 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
496#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
497#if defined(PSA_CRYPTO_DRIVER_TEST)
509static inline psa_status_t psa_driver_wrapper_sign_hash_start(
513 const uint8_t *hash,
size_t hash_length )
517 psa_get_key_lifetime(attributes) );
525#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
526#if defined(PSA_CRYPTO_DRIVER_TEST)
536 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
539 key_buffer, key_buffer_size,
540 alg, hash, hash_length );
554static inline psa_status_t psa_driver_wrapper_sign_hash_complete(
556 uint8_t *signature,
size_t signature_size,
557 size_t *signature_length )
559 switch( operation->id )
561 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
563 signature, signature_size,
564 signature_length ) );
566#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
567#if defined(PSA_CRYPTO_DRIVER_TEST)
575 ( void ) signature_size;
576 ( void ) signature_length;
581static inline psa_status_t psa_driver_wrapper_sign_hash_abort(
584 switch( operation->id )
586 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
589#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
590#if defined(PSA_CRYPTO_DRIVER_TEST)
600static inline psa_status_t psa_driver_wrapper_verify_hash_start(
604 const uint8_t *hash,
size_t hash_length,
605 const uint8_t *signature,
size_t signature_length )
609 psa_get_key_lifetime(attributes) );
617#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
618#if defined(PSA_CRYPTO_DRIVER_TEST)
628 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
631 key_buffer, key_buffer_size,
632 alg, hash, hash_length,
633 signature, signature_length );
647static inline psa_status_t psa_driver_wrapper_verify_hash_complete(
650 switch( operation->id )
652 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
654 &operation->ctx.mbedtls_ctx
657#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
658#if defined(PSA_CRYPTO_DRIVER_TEST)
668static inline psa_status_t psa_driver_wrapper_verify_hash_abort(
671 switch( operation->id )
673 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
677#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
678#if defined(PSA_CRYPTO_DRIVER_TEST)
700static inline psa_status_t psa_driver_wrapper_get_key_buffer_size_from_key_data(
704 size_t *key_buffer_size )
710 *key_buffer_size = 0;
713#if defined(PSA_CRYPTO_DRIVER_TEST)
714 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
715 *key_buffer_size = mbedtls_test_opaque_size_function( key_type,
717 return( ( *key_buffer_size != 0 ) ?
729static inline psa_status_t psa_driver_wrapper_generate_key(
732 const uint8_t *custom_data,
size_t custom_data_length,
733 uint8_t *key_buffer,
size_t key_buffer_size,
size_t *key_buffer_length )
739#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
740 int is_default_production =
749 int is_default_production = 1;
750 (void) is_default_production;
754#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
760 size_t pubkey_length = 0;
761 if( drv->key_management ==
NULL ||
762 drv->key_management->p_generate ==
NULL )
767 return( drv->key_management->p_generate(
770 attributes,
NULL, 0, &pubkey_length ) );
777#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
782 is_default_production )
785#if defined(PSA_CRYPTO_DRIVER_TEST)
786 status = mbedtls_test_transparent_generate_key(
787 attributes, key_buffer, key_buffer_size,
793#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
796 psa_get_key_bits(attributes) == 256 )
798 status = p256_transparent_generate_key( attributes,
812 attributes, custom, custom_data, custom_data_length,
813 key_buffer, key_buffer_size, key_buffer_length );
817#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
818#if defined(PSA_CRYPTO_DRIVER_TEST)
819 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
820 status = mbedtls_test_opaque_generate_key(
821 attributes, key_buffer, key_buffer_size, key_buffer_length );
835static inline psa_status_t psa_driver_wrapper_import_key(
840 size_t key_buffer_size,
841 size_t *key_buffer_length,
847 psa_get_key_lifetime( attributes ) );
850#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
856 if( drv->key_management ==
NULL ||
857 drv->key_management->p_import ==
NULL )
863 status = drv->key_management->p_import(
866 attributes,
data, data_length, bits );
883#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
885#if (defined(PSA_CRYPTO_DRIVER_TEST) )
886 status = mbedtls_test_transparent_import_key
900#if (defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED) )
901 status = p256_transparent_import_key
921 key_buffer, key_buffer_size,
922 key_buffer_length, bits ) );
924#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
926#if (defined(PSA_CRYPTO_DRIVER_TEST) )
928 return( mbedtls_test_opaque_import_key
948static inline psa_status_t psa_driver_wrapper_export_key(
950 const uint8_t *key_buffer,
size_t key_buffer_size,
951 uint8_t *
data,
size_t data_size,
size_t *data_length )
957 psa_get_key_lifetime( attributes ) );
960#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
966 if( ( drv->key_management ==
NULL ) ||
967 ( drv->key_management->p_export ==
NULL ) )
972 return( drv->key_management->p_export(
975 data, data_size, data_length ) );
990#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
992#if (defined(PSA_CRYPTO_DRIVER_TEST) )
994 return( mbedtls_test_opaque_export_key
1015 const uint8_t *source_key,
size_t source_key_length,
1016 uint8_t *target_key_buffer,
size_t target_key_buffer_size,
1017 size_t *target_key_buffer_length )
1024#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
1037#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1039#if (defined(PSA_CRYPTO_DRIVER_TEST) )
1041 return( mbedtls_test_opaque_copy_key
1046 target_key_buffer_size,
1047 target_key_buffer_length
1055 (void)source_key_length;
1056 (void)target_key_buffer;
1057 (void)target_key_buffer_size;
1058 (void)target_key_buffer_length;
1068static inline psa_status_t psa_driver_wrapper_cipher_encrypt(
1071 size_t key_buffer_size,
1076 size_t input_length,
1079 size_t *output_length )
1090#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1091#if defined(PSA_CRYPTO_DRIVER_TEST)
1092 status = mbedtls_test_transparent_cipher_encrypt( attributes,
1109#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1126#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1127#if defined(PSA_CRYPTO_DRIVER_TEST)
1128 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
1129 return( mbedtls_test_opaque_cipher_encrypt( attributes,
1147 (void)key_buffer_size;
1155 (void)output_length;
1160static inline psa_status_t psa_driver_wrapper_cipher_decrypt(
1163 size_t key_buffer_size,
1166 size_t input_length,
1169 size_t *output_length )
1180#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1181#if defined(PSA_CRYPTO_DRIVER_TEST)
1182 status = mbedtls_test_transparent_cipher_decrypt( attributes,
1197#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1212#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1213#if defined(PSA_CRYPTO_DRIVER_TEST)
1214 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
1215 return( mbedtls_test_opaque_cipher_decrypt( attributes,
1231 (void)key_buffer_size;
1237 (void)output_length;
1242static inline psa_status_t psa_driver_wrapper_cipher_encrypt_setup(
1245 const uint8_t *key_buffer,
size_t key_buffer_size,
1257#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1258#if defined(PSA_CRYPTO_DRIVER_TEST)
1259 status = mbedtls_test_transparent_cipher_encrypt_setup(
1260 &operation->ctx.transparent_test_driver_ctx,
1267 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
1273#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1281 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
1289#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1290#if defined(PSA_CRYPTO_DRIVER_TEST)
1291 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
1292 status = mbedtls_test_opaque_cipher_encrypt_setup(
1293 &operation->ctx.opaque_test_driver_ctx,
1295 key_buffer, key_buffer_size,
1299 operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID;
1309 (void)key_buffer_size;
1315static inline psa_status_t psa_driver_wrapper_cipher_decrypt_setup(
1318 const uint8_t *key_buffer,
size_t key_buffer_size,
1330#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1331#if defined(PSA_CRYPTO_DRIVER_TEST)
1332 status = mbedtls_test_transparent_cipher_decrypt_setup(
1333 &operation->ctx.transparent_test_driver_ctx,
1340 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
1346#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1354 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
1362#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1363#if defined(PSA_CRYPTO_DRIVER_TEST)
1364 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
1365 status = mbedtls_test_opaque_cipher_decrypt_setup(
1366 &operation->ctx.opaque_test_driver_ctx,
1368 key_buffer, key_buffer_size,
1372 operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID;
1382 (void)key_buffer_size;
1388static inline psa_status_t psa_driver_wrapper_cipher_set_iv(
1393 switch( operation->id )
1395#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1396 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1402#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1403#if defined(PSA_CRYPTO_DRIVER_TEST)
1404 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1405 return( mbedtls_test_transparent_cipher_set_iv(
1406 &operation->ctx.transparent_test_driver_ctx,
1409 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
1410 return( mbedtls_test_opaque_cipher_set_iv(
1411 &operation->ctx.opaque_test_driver_ctx,
1423static inline psa_status_t psa_driver_wrapper_cipher_update(
1426 size_t input_length,
1429 size_t *output_length )
1431 switch( operation->id )
1433#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1434 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1443#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1444#if defined(PSA_CRYPTO_DRIVER_TEST)
1445 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1446 return( mbedtls_test_transparent_cipher_update(
1447 &operation->ctx.transparent_test_driver_ctx,
1448 input, input_length,
1449 output, output_size, output_length ) );
1451 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
1452 return( mbedtls_test_opaque_cipher_update(
1453 &operation->ctx.opaque_test_driver_ctx,
1454 input, input_length,
1455 output, output_size, output_length ) );
1464 (void)output_length;
1469static inline psa_status_t psa_driver_wrapper_cipher_finish(
1473 size_t *output_length )
1475 switch( operation->id )
1477#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1478 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1485#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1486#if defined(PSA_CRYPTO_DRIVER_TEST)
1487 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1488 return( mbedtls_test_transparent_cipher_finish(
1489 &operation->ctx.transparent_test_driver_ctx,
1490 output, output_size, output_length ) );
1492 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
1493 return( mbedtls_test_opaque_cipher_finish(
1494 &operation->ctx.opaque_test_driver_ctx,
1495 output, output_size, output_length ) );
1502 (void)output_length;
1507static inline psa_status_t psa_driver_wrapper_cipher_abort(
1512 switch( operation->id )
1514#if defined(MBEDTLS_PSA_BUILTIN_CIPHER)
1515 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1519#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1520#if defined(PSA_CRYPTO_DRIVER_TEST)
1521 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1522 status = mbedtls_test_transparent_cipher_abort(
1523 &operation->ctx.transparent_test_driver_ctx );
1525 &operation->ctx.transparent_test_driver_ctx,
1526 sizeof( operation->ctx.transparent_test_driver_ctx ) );
1529 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
1530 status = mbedtls_test_opaque_cipher_abort(
1531 &operation->ctx.opaque_test_driver_ctx );
1533 &operation->ctx.opaque_test_driver_ctx,
1534 sizeof( operation->ctx.opaque_test_driver_ctx ) );
1547static inline psa_status_t psa_driver_wrapper_hash_compute(
1550 size_t input_length,
1553 size_t *hash_length)
1558#if defined(PSA_CRYPTO_DRIVER_TEST)
1559 status = mbedtls_test_transparent_hash_compute(
1560 alg,
input, input_length, hash, hash_size, hash_length );
1566#if defined(MBEDTLS_PSA_BUILTIN_HASH)
1568 hash, hash_size, hash_length );
1575 (void) input_length;
1583static inline psa_status_t psa_driver_wrapper_hash_setup(
1590#if defined(PSA_CRYPTO_DRIVER_TEST)
1591 status = mbedtls_test_transparent_hash_setup(
1592 &operation->ctx.test_driver_ctx, alg );
1594 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
1601#if defined(MBEDTLS_PSA_BUILTIN_HASH)
1604 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
1616static inline psa_status_t psa_driver_wrapper_hash_clone(
1620 switch( source_operation->id )
1622#if defined(MBEDTLS_PSA_BUILTIN_HASH)
1623 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1624 target_operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
1626 &target_operation->ctx.mbedtls_ctx ) );
1628#if defined(PSA_CRYPTO_DRIVER_TEST)
1629 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1630 target_operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
1631 return( mbedtls_test_transparent_hash_clone(
1632 &source_operation->ctx.test_driver_ctx,
1633 &target_operation->ctx.test_driver_ctx ) );
1636 (void) target_operation;
1641static inline psa_status_t psa_driver_wrapper_hash_update(
1644 size_t input_length )
1646 switch( operation->id )
1648#if defined(MBEDTLS_PSA_BUILTIN_HASH)
1649 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1651 input, input_length ) );
1653#if defined(PSA_CRYPTO_DRIVER_TEST)
1654 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1655 return( mbedtls_test_transparent_hash_update(
1656 &operation->ctx.test_driver_ctx,
1657 input, input_length ) );
1661 (void) input_length;
1666static inline psa_status_t psa_driver_wrapper_hash_finish(
1670 size_t *hash_length )
1672 switch( operation->id )
1674#if defined(MBEDTLS_PSA_BUILTIN_HASH)
1675 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1677 hash, hash_size, hash_length ) );
1679#if defined(PSA_CRYPTO_DRIVER_TEST)
1680 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1681 return( mbedtls_test_transparent_hash_finish(
1682 &operation->ctx.test_driver_ctx,
1683 hash, hash_size, hash_length ) );
1693static inline psa_status_t psa_driver_wrapper_hash_abort(
1696 switch( operation->id )
1698#if defined(MBEDTLS_PSA_BUILTIN_HASH)
1699 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1702#if defined(PSA_CRYPTO_DRIVER_TEST)
1703 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1704 return( mbedtls_test_transparent_hash_abort(
1705 &operation->ctx.test_driver_ctx ) );
1712static inline psa_status_t psa_driver_wrapper_aead_encrypt(
1714 const uint8_t *key_buffer,
size_t key_buffer_size,
1716 const uint8_t *nonce,
size_t nonce_length,
1717 const uint8_t *additional_data,
size_t additional_data_length,
1718 const uint8_t *plaintext,
size_t plaintext_length,
1719 uint8_t *ciphertext,
size_t ciphertext_size,
size_t *ciphertext_length )
1731#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1732#if defined(PSA_CRYPTO_DRIVER_TEST)
1733 status = mbedtls_test_transparent_aead_encrypt(
1734 attributes, key_buffer, key_buffer_size,
1736 nonce, nonce_length,
1737 additional_data, additional_data_length,
1738 plaintext, plaintext_length,
1739 ciphertext, ciphertext_size, ciphertext_length );
1748 attributes, key_buffer, key_buffer_size,
1750 nonce, nonce_length,
1751 additional_data, additional_data_length,
1752 plaintext, plaintext_length,
1753 ciphertext, ciphertext_size, ciphertext_length ) );
1764static inline psa_status_t psa_driver_wrapper_aead_decrypt(
1766 const uint8_t *key_buffer,
size_t key_buffer_size,
1768 const uint8_t *nonce,
size_t nonce_length,
1769 const uint8_t *additional_data,
size_t additional_data_length,
1770 const uint8_t *ciphertext,
size_t ciphertext_length,
1771 uint8_t *plaintext,
size_t plaintext_size,
size_t *plaintext_length )
1783#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1784#if defined(PSA_CRYPTO_DRIVER_TEST)
1785 status = mbedtls_test_transparent_aead_decrypt(
1786 attributes, key_buffer, key_buffer_size,
1788 nonce, nonce_length,
1789 additional_data, additional_data_length,
1790 ciphertext, ciphertext_length,
1791 plaintext, plaintext_size, plaintext_length );
1800 attributes, key_buffer, key_buffer_size,
1802 nonce, nonce_length,
1803 additional_data, additional_data_length,
1804 ciphertext, ciphertext_length,
1805 plaintext, plaintext_size, plaintext_length ) );
1816static inline psa_status_t psa_driver_wrapper_aead_encrypt_setup(
1819 const uint8_t *key_buffer,
size_t key_buffer_size,
1832#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1833#if defined(PSA_CRYPTO_DRIVER_TEST)
1834 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
1835 status = mbedtls_test_transparent_aead_encrypt_setup(
1836 &operation->ctx.transparent_test_driver_ctx,
1837 attributes, key_buffer, key_buffer_size,
1847 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
1849 &operation->ctx.mbedtls_ctx, attributes,
1850 key_buffer, key_buffer_size,
1864static inline psa_status_t psa_driver_wrapper_aead_decrypt_setup(
1867 const uint8_t *key_buffer,
size_t key_buffer_size,
1880#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1881#if defined(PSA_CRYPTO_DRIVER_TEST)
1882 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
1883 status = mbedtls_test_transparent_aead_decrypt_setup(
1884 &operation->ctx.transparent_test_driver_ctx,
1886 key_buffer, key_buffer_size,
1896 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
1898 &operation->ctx.mbedtls_ctx,
1900 key_buffer, key_buffer_size,
1914static inline psa_status_t psa_driver_wrapper_aead_set_nonce(
1917 size_t nonce_length )
1919 switch( operation->id )
1921#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
1922 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1929#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1930#if defined(PSA_CRYPTO_DRIVER_TEST)
1931 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1932 return( mbedtls_test_transparent_aead_set_nonce(
1933 &operation->ctx.transparent_test_driver_ctx,
1934 nonce, nonce_length ) );
1948static inline psa_status_t psa_driver_wrapper_aead_set_lengths(
1951 size_t plaintext_length )
1953 switch( operation->id )
1955#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
1956 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1959 plaintext_length ) );
1963#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1964#if defined(PSA_CRYPTO_DRIVER_TEST)
1965 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
1966 return( mbedtls_test_transparent_aead_set_lengths(
1967 &operation->ctx.transparent_test_driver_ctx,
1968 ad_length, plaintext_length ) );
1977 (void)plaintext_length;
1982static inline psa_status_t psa_driver_wrapper_aead_update_ad(
1985 size_t input_length )
1987 switch( operation->id )
1989#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
1990 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
1997#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
1998#if defined(PSA_CRYPTO_DRIVER_TEST)
1999 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2000 return( mbedtls_test_transparent_aead_update_ad(
2001 &operation->ctx.transparent_test_driver_ctx,
2002 input, input_length ) );
2016static inline psa_status_t psa_driver_wrapper_aead_update(
2019 size_t input_length,
2022 size_t *output_length )
2024 switch( operation->id )
2026#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
2027 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2029 input, input_length,
2030 output, output_size,
2035#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2036#if defined(PSA_CRYPTO_DRIVER_TEST)
2037 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2038 return( mbedtls_test_transparent_aead_update(
2039 &operation->ctx.transparent_test_driver_ctx,
2040 input, input_length, output, output_size,
2053 (void)output_length;
2058static inline psa_status_t psa_driver_wrapper_aead_finish(
2061 size_t ciphertext_size,
2062 size_t *ciphertext_length,
2065 size_t *tag_length )
2067 switch( operation->id )
2069#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
2070 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2074 ciphertext_length, tag,
2075 tag_size, tag_length ) );
2079#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2080#if defined(PSA_CRYPTO_DRIVER_TEST)
2081 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2082 return( mbedtls_test_transparent_aead_finish(
2083 &operation->ctx.transparent_test_driver_ctx,
2084 ciphertext, ciphertext_size,
2085 ciphertext_length, tag, tag_size, tag_length ) );
2094 (void)ciphertext_size;
2095 (void)ciphertext_length;
2103static inline psa_status_t psa_driver_wrapper_aead_verify(
2106 size_t plaintext_size,
2107 size_t *plaintext_length,
2111 switch( operation->id )
2113#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
2114 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2118 size_t check_tag_length;
2125 sizeof( check_tag ),
2126 &check_tag_length );
2130 if( tag_length != check_tag_length ||
2143#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2144#if defined(PSA_CRYPTO_DRIVER_TEST)
2145 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2146 return( mbedtls_test_transparent_aead_verify(
2147 &operation->ctx.transparent_test_driver_ctx,
2148 plaintext, plaintext_size,
2149 plaintext_length, tag, tag_length ) );
2158 (void)plaintext_size;
2159 (void)plaintext_length;
2166static inline psa_status_t psa_driver_wrapper_aead_abort(
2169 switch( operation->id )
2171#if defined(MBEDTLS_PSA_BUILTIN_AEAD)
2172 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2177#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2178#if defined(PSA_CRYPTO_DRIVER_TEST)
2179 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2180 return( mbedtls_test_transparent_aead_abort(
2181 &operation->ctx.transparent_test_driver_ctx ) );
2195static inline psa_status_t psa_driver_wrapper_mac_compute(
2198 size_t key_buffer_size,
2201 size_t input_length,
2204 size_t *mac_length )
2215#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2216#if defined(PSA_CRYPTO_DRIVER_TEST)
2217 status = mbedtls_test_transparent_mac_compute(
2218 attributes, key_buffer, key_buffer_size, alg,
2219 input, input_length,
2220 mac, mac_size, mac_length );
2226#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2229 attributes, key_buffer, key_buffer_size, alg,
2230 input, input_length,
2231 mac, mac_size, mac_length );
2238#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2239#if defined(PSA_CRYPTO_DRIVER_TEST)
2240 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
2241 status = mbedtls_test_opaque_mac_compute(
2242 attributes, key_buffer, key_buffer_size, alg,
2243 input, input_length,
2244 mac, mac_size, mac_length );
2251 (void) key_buffer_size;
2254 (void) input_length;
2263static inline psa_status_t psa_driver_wrapper_mac_sign_setup(
2267 size_t key_buffer_size,
2279#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2280#if defined(PSA_CRYPTO_DRIVER_TEST)
2281 status = mbedtls_test_transparent_mac_sign_setup(
2282 &operation->ctx.transparent_test_driver_ctx,
2284 key_buffer, key_buffer_size,
2288 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
2294#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2298 key_buffer, key_buffer_size,
2301 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
2309#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2310#if defined(PSA_CRYPTO_DRIVER_TEST)
2311 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
2312 status = mbedtls_test_opaque_mac_sign_setup(
2313 &operation->ctx.opaque_test_driver_ctx,
2315 key_buffer, key_buffer_size,
2319 operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID;
2329 (void) key_buffer_size;
2335static inline psa_status_t psa_driver_wrapper_mac_verify_setup(
2339 size_t key_buffer_size,
2351#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2352#if defined(PSA_CRYPTO_DRIVER_TEST)
2353 status = mbedtls_test_transparent_mac_verify_setup(
2354 &operation->ctx.transparent_test_driver_ctx,
2356 key_buffer, key_buffer_size,
2360 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
2366#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2370 key_buffer, key_buffer_size,
2373 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
2381#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2382#if defined(PSA_CRYPTO_DRIVER_TEST)
2383 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
2384 status = mbedtls_test_opaque_mac_verify_setup(
2385 &operation->ctx.opaque_test_driver_ctx,
2387 key_buffer, key_buffer_size,
2391 operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID;
2401 (void) key_buffer_size;
2407static inline psa_status_t psa_driver_wrapper_mac_update(
2410 size_t input_length )
2412 switch( operation->id )
2414#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2415 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2417 input, input_length ) );
2420#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2421#if defined(PSA_CRYPTO_DRIVER_TEST)
2422 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2423 return( mbedtls_test_transparent_mac_update(
2424 &operation->ctx.transparent_test_driver_ctx,
2425 input, input_length ) );
2427 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
2428 return( mbedtls_test_opaque_mac_update(
2429 &operation->ctx.opaque_test_driver_ctx,
2430 input, input_length ) );
2435 (void) input_length;
2440static inline psa_status_t psa_driver_wrapper_mac_sign_finish(
2444 size_t *mac_length )
2446 switch( operation->id )
2448#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2449 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2451 mac, mac_size, mac_length ) );
2454#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2455#if defined(PSA_CRYPTO_DRIVER_TEST)
2456 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2457 return( mbedtls_test_transparent_mac_sign_finish(
2458 &operation->ctx.transparent_test_driver_ctx,
2459 mac, mac_size, mac_length ) );
2461 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
2462 return( mbedtls_test_opaque_mac_sign_finish(
2463 &operation->ctx.opaque_test_driver_ctx,
2464 mac, mac_size, mac_length ) );
2475static inline psa_status_t psa_driver_wrapper_mac_verify_finish(
2480 switch( operation->id )
2482#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2483 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2485 mac, mac_length ) );
2488#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2489#if defined(PSA_CRYPTO_DRIVER_TEST)
2490 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2491 return( mbedtls_test_transparent_mac_verify_finish(
2492 &operation->ctx.transparent_test_driver_ctx,
2493 mac, mac_length ) );
2495 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
2496 return( mbedtls_test_opaque_mac_verify_finish(
2497 &operation->ctx.opaque_test_driver_ctx,
2498 mac, mac_length ) );
2508static inline psa_status_t psa_driver_wrapper_mac_abort(
2511 switch( operation->id )
2513#if defined(MBEDTLS_PSA_BUILTIN_MAC)
2514 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2518#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2519#if defined(PSA_CRYPTO_DRIVER_TEST)
2520 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2521 return( mbedtls_test_transparent_mac_abort(
2522 &operation->ctx.transparent_test_driver_ctx ) );
2523 case MBEDTLS_TEST_OPAQUE_DRIVER_ID:
2524 return( mbedtls_test_opaque_mac_abort(
2525 &operation->ctx.opaque_test_driver_ctx ) );
2536static inline psa_status_t psa_driver_wrapper_asymmetric_encrypt(
2539 size_t input_length,
const uint8_t *salt,
size_t salt_length,
2540 uint8_t *output,
size_t output_size,
size_t *output_length )
2551#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2552#if defined(PSA_CRYPTO_DRIVER_TEST)
2553 status = mbedtls_test_transparent_asymmetric_encrypt( attributes,
2554 key_buffer, key_buffer_size, alg,
input, input_length,
2555 salt, salt_length, output, output_size,
2563 key_buffer, key_buffer_size, alg,
input, input_length,
2564 salt, salt_length, output, output_size, output_length )
2567#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2568#if defined(PSA_CRYPTO_DRIVER_TEST)
2569 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
2570 return( mbedtls_test_opaque_asymmetric_encrypt( attributes,
2571 key_buffer, key_buffer_size, alg,
input, input_length,
2572 salt, salt_length, output, output_size, output_length )
2581 (void)key_buffer_size;
2589 (void)output_length;
2594static inline psa_status_t psa_driver_wrapper_asymmetric_decrypt(
2597 size_t input_length,
const uint8_t *salt,
size_t salt_length,
2598 uint8_t *output,
size_t output_size,
size_t *output_length )
2609#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2610#if defined(PSA_CRYPTO_DRIVER_TEST)
2611 status = mbedtls_test_transparent_asymmetric_decrypt( attributes,
2612 key_buffer, key_buffer_size, alg,
input, input_length,
2613 salt, salt_length, output, output_size,
2621 key_buffer, key_buffer_size, alg,
input, input_length,
2622 salt, salt_length, output, output_size,
2625#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2626#if defined(PSA_CRYPTO_DRIVER_TEST)
2627 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
2628 return( mbedtls_test_opaque_asymmetric_decrypt( attributes,
2629 key_buffer, key_buffer_size, alg,
input, input_length,
2630 salt, salt_length, output, output_size,
2639 (void)key_buffer_size;
2647 (void)output_length;
2652static inline psa_status_t psa_driver_wrapper_key_agreement(
2655 size_t key_buffer_size,
2658 size_t peer_key_length,
2660 size_t shared_secret_size,
2661 size_t *shared_secret_length
2673#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2674#if defined(PSA_CRYPTO_DRIVER_TEST)
2676 mbedtls_test_transparent_key_agreement( attributes,
2677 key_buffer, key_buffer_size, alg, peer_key,
2678 peer_key_length, shared_secret, shared_secret_size,
2679 shared_secret_length );
2683#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
2687 psa_get_key_bits(attributes) == 256 )
2689 status = p256_transparent_key_agreement( attributes,
2697 shared_secret_length );
2713 shared_secret_length );
2715#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2716#if defined(PSA_CRYPTO_DRIVER_TEST)
2717 case PSA_CRYPTO_TEST_DRIVER_LOCATION:
2718 return( mbedtls_test_opaque_key_agreement( attributes,
2719 key_buffer, key_buffer_size, alg, peer_key,
2720 peer_key_length, shared_secret, shared_secret_size,
2721 shared_secret_length ) );
2728 (void) key_buffer_size;
2730 (void) peer_key_length;
2731 (void) shared_secret;
2732 (void) shared_secret_size;
2733 (void) shared_secret_length;
2739static inline psa_status_t psa_driver_wrapper_pake_setup(
2754#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2755#if defined(PSA_CRYPTO_DRIVER_TEST)
2756 status = mbedtls_test_transparent_pake_setup(
2757 &operation->data.ctx.transparent_test_driver_ctx,
2760 operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID;
2766#if defined(MBEDTLS_PSA_BUILTIN_PAKE)
2770 operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID;
2781static inline psa_status_t psa_driver_wrapper_pake_output(
2786 size_t *output_length )
2788 switch( operation->id )
2790#if defined(MBEDTLS_PSA_BUILTIN_PAKE)
2791 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2793 output, output_size, output_length ) );
2796#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2797#if defined(PSA_CRYPTO_DRIVER_TEST)
2798 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2799 return( mbedtls_test_transparent_pake_output(
2800 &operation->data.ctx.transparent_test_driver_ctx,
2801 step, output, output_size, output_length ) );
2808 (void) output_length;
2813static inline psa_status_t psa_driver_wrapper_pake_input(
2817 size_t input_length )
2819 switch( operation->id )
2821#if defined(MBEDTLS_PSA_BUILTIN_PAKE)
2822 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2828#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2829#if defined(PSA_CRYPTO_DRIVER_TEST)
2830 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2831 return( mbedtls_test_transparent_pake_input(
2832 &operation->data.ctx.transparent_test_driver_ctx,
2834 input, input_length ) );
2840 (void) input_length;
2845static inline psa_status_t psa_driver_wrapper_pake_get_implicit_key(
2847 uint8_t *output,
size_t output_size,
2848 size_t *output_length )
2850 switch( operation->id )
2852#if defined(MBEDTLS_PSA_BUILTIN_PAKE)
2853 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2855 output, output_size, output_length ) );
2858#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2859#if defined(PSA_CRYPTO_DRIVER_TEST)
2860 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2861 return( mbedtls_test_transparent_pake_get_implicit_key(
2862 &operation->data.ctx.transparent_test_driver_ctx,
2863 output, output_size, output_length ) );
2869 (void) output_length;
2874static inline psa_status_t psa_driver_wrapper_pake_abort(
2877 switch( operation->id )
2879#if defined(MBEDTLS_PSA_BUILTIN_PAKE)
2880 case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
2884#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
2885#if defined(PSA_CRYPTO_DRIVER_TEST)
2886 case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID:
2887 return( mbedtls_test_transparent_pake_abort(
2888 &operation->data.ctx.transparent_test_driver_ctx ) );
uint8_t mac[6]
Definition main.cpp:127
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
#define NULL
Definition actypes.h:561
Utility macros for internal use in the library.
int mbedtls_ct_memcmp(const void *a, const void *b, size_t n)
Definition constant_time.c:68
#define PSA_BYTES_TO_BITS(bytes)
Definition crypto_sizes.h:41
#define PSA_AEAD_TAG_MAX_SIZE
Definition crypto_sizes.h:197
#define PSA_MAX_KEY_BITS
Definition crypto_struct.h:293
#define PSA_KEY_TYPE_ECC_KEY_PAIR(curve)
Definition crypto_values.h:559
#define PSA_KEY_TYPE_ECC_GET_FAMILY(type)
Definition crypto_values.h:587
#define PSA_ECC_FAMILY_SECP_R1
Definition crypto_values.h:617
uint16_t psa_key_type_t
Encoding of a key type.
Definition crypto_types.h:78
#define PSA_KEY_TYPE_IS_ECC(type)
Definition crypto_values.h:574
#define PSA_ALG_IS_ECDH(alg)
Definition crypto_values.h:2249
#define PSA_KEY_TYPE_IS_ASYMMETRIC(type)
Definition crypto_values.h:391
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition crypto_types.h:134
#define PSA_ALG_IS_RANDOMIZED_ECDSA(alg)
Definition crypto_values.h:1578
#define PSA_ALG_IS_ECDSA(alg)
Definition crypto_values.h:1571
int32_t psa_status_t
Function return status.
Definition crypto_types.h:59
#define PSA_ERROR_CORRUPTION_DETECTED
Definition crypto_values.h:231
#define PSA_ERROR_NOT_SUPPORTED
Definition crypto_values.h:73
#define PSA_ERROR_INVALID_SIGNATURE
Definition crypto_values.h:260
#define PSA_SUCCESS
Definition crypto_values.h:57
#define PSA_ERROR_INVALID_ARGUMENT
Definition crypto_values.h:137
#define PSA_ERROR_BAD_STATE
Definition crypto_values.h:126
#define PSA_KEY_LOCATION_LOCAL_STORAGE
Definition crypto_values.h:2408
#define PSA_KEY_LIFETIME_GET_LOCATION(lifetime)
Definition crypto_values.h:2345
uint32_t psa_key_location_t
Definition crypto_types.h:260
uint64_t psa_key_slot_number_t
Definition crypto_se_driver.h:137
void * data
Definition kthread.h:30
psa_status_t mbedtls_psa_aead_encrypt_setup(mbedtls_psa_aead_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
psa_status_t mbedtls_psa_aead_encrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *nonce, size_t nonce_length, const uint8_t *additional_data, size_t additional_data_length, const uint8_t *plaintext, size_t plaintext_length, uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length)
Process an authenticated encryption operation.
psa_status_t mbedtls_psa_aead_update(mbedtls_psa_aead_operation_t *operation, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t mbedtls_psa_aead_update_ad(mbedtls_psa_aead_operation_t *operation, const uint8_t *input, size_t input_length)
psa_status_t mbedtls_psa_aead_decrypt_setup(mbedtls_psa_aead_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
psa_status_t mbedtls_psa_aead_set_lengths(mbedtls_psa_aead_operation_t *operation, size_t ad_length, size_t plaintext_length)
psa_status_t mbedtls_psa_aead_finish(mbedtls_psa_aead_operation_t *operation, uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length, uint8_t *tag, size_t tag_size, size_t *tag_length)
psa_status_t mbedtls_psa_aead_decrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *nonce, size_t nonce_length, const uint8_t *additional_data, size_t additional_data_length, const uint8_t *ciphertext, size_t ciphertext_length, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length)
Process an authenticated decryption operation.
psa_status_t mbedtls_psa_aead_abort(mbedtls_psa_aead_operation_t *operation)
psa_status_t mbedtls_psa_aead_set_nonce(mbedtls_psa_aead_operation_t *operation, const uint8_t *nonce, size_t nonce_length)
psa_status_t mbedtls_psa_cipher_decrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t mbedtls_psa_cipher_decrypt_setup(mbedtls_psa_cipher_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
Set the key for a multipart symmetric decryption operation.
psa_status_t mbedtls_psa_cipher_update(mbedtls_psa_cipher_operation_t *operation, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t mbedtls_psa_cipher_encrypt_setup(mbedtls_psa_cipher_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
Set the key for a multipart symmetric encryption operation.
psa_status_t mbedtls_psa_cipher_abort(mbedtls_psa_cipher_operation_t *operation)
psa_status_t mbedtls_psa_cipher_finish(mbedtls_psa_cipher_operation_t *operation, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t mbedtls_psa_cipher_set_iv(mbedtls_psa_cipher_operation_t *operation, const uint8_t *iv, size_t iv_length)
psa_status_t mbedtls_psa_cipher_encrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *iv, size_t iv_length, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t psa_sign_hash_builtin(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
psa_status_t mbedtls_psa_sign_hash_start(mbedtls_psa_sign_hash_interruptible_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length)
Start signing a hash or short message with a private key, in an interruptible manner.
psa_status_t mbedtls_psa_verify_hash_start(mbedtls_psa_verify_hash_interruptible_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, const uint8_t *signature, size_t signature_length)
Start reading and verifying a hash or short message, in an interruptible manner.
psa_status_t psa_key_agreement_raw_builtin(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *peer_key, size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, size_t *shared_secret_length)
psa_status_t psa_verify_hash_builtin(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, const uint8_t *signature, size_t signature_length)
Verify the signature a hash or short message using a public key.
psa_status_t mbedtls_psa_sign_hash_complete(mbedtls_psa_sign_hash_interruptible_operation_t *operation, uint8_t *signature, size_t signature_size, size_t *signature_length)
Continue and eventually complete the action of signing a hash or short message with a private key,...
int psa_custom_key_parameters_are_default(const psa_custom_key_parameters_t *custom, size_t custom_data_length)
psa_status_t mbedtls_psa_verify_hash_abort(mbedtls_psa_verify_hash_interruptible_operation_t *operation)
Abort a verify signed hash operation.
psa_status_t psa_sign_message_builtin(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *input, size_t input_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
psa_status_t psa_verify_message_builtin(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *signature, size_t signature_length)
psa_status_t mbedtls_psa_verify_hash_complete(mbedtls_psa_verify_hash_interruptible_operation_t *operation)
Continue and eventually complete the action of signing a hash or short message with a private key,...
psa_status_t psa_generate_key_internal(const psa_key_attributes_t *attributes, const psa_custom_key_parameters_t *custom, const uint8_t *custom_data, size_t custom_data_length, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
Generate a key.
uint32_t mbedtls_psa_verify_hash_get_num_ops(const mbedtls_psa_verify_hash_interruptible_operation_t *operation)
Get the number of ops that a hash verification operation has taken for the previous call....
uint32_t mbedtls_psa_sign_hash_get_num_ops(const mbedtls_psa_sign_hash_interruptible_operation_t *operation)
Get the number of ops that a hash signing operation has taken for the previous call....
psa_status_t psa_export_key_internal(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, uint8_t *data, size_t data_size, size_t *data_length)
psa_status_t mbedtls_psa_sign_hash_abort(mbedtls_psa_sign_hash_interruptible_operation_t *operation)
Abort a sign hash operation.
psa_status_t psa_import_key_into_slot(const psa_key_attributes_t *attributes, const uint8_t *data, size_t data_length, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length, size_t *bits)
psa_status_t mbedtls_psa_hash_clone(const mbedtls_psa_hash_operation_t *source_operation, mbedtls_psa_hash_operation_t *target_operation)
psa_status_t mbedtls_psa_hash_setup(mbedtls_psa_hash_operation_t *operation, psa_algorithm_t alg)
psa_status_t mbedtls_psa_hash_finish(mbedtls_psa_hash_operation_t *operation, uint8_t *hash, size_t hash_size, size_t *hash_length)
psa_status_t mbedtls_psa_hash_abort(mbedtls_psa_hash_operation_t *operation)
psa_status_t mbedtls_psa_hash_compute(psa_algorithm_t alg, const uint8_t *input, size_t input_length, uint8_t *hash, size_t hash_size, size_t *hash_length)
psa_status_t mbedtls_psa_hash_update(mbedtls_psa_hash_operation_t *operation, const uint8_t *input, size_t input_length)
psa_status_t mbedtls_psa_mac_compute(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *input, size_t input_length, uint8_t *mac, size_t mac_size, size_t *mac_length)
psa_status_t mbedtls_psa_mac_verify_finish(mbedtls_psa_mac_operation_t *operation, const uint8_t *mac, size_t mac_length)
psa_status_t mbedtls_psa_mac_update(mbedtls_psa_mac_operation_t *operation, const uint8_t *input, size_t input_length)
psa_status_t mbedtls_psa_mac_verify_setup(mbedtls_psa_mac_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
psa_status_t mbedtls_psa_mac_abort(mbedtls_psa_mac_operation_t *operation)
psa_status_t mbedtls_psa_mac_sign_finish(mbedtls_psa_mac_operation_t *operation, uint8_t *mac, size_t mac_size, size_t *mac_length)
psa_status_t mbedtls_psa_mac_sign_setup(mbedtls_psa_mac_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
psa_status_t mbedtls_psa_pake_get_implicit_key(mbedtls_psa_pake_operation_t *operation, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t mbedtls_psa_pake_abort(mbedtls_psa_pake_operation_t *operation)
psa_status_t mbedtls_psa_pake_output(mbedtls_psa_pake_operation_t *operation, psa_crypto_driver_pake_step_t step, uint8_t *output, size_t output_size, size_t *output_length)
psa_status_t mbedtls_psa_pake_setup(mbedtls_psa_pake_operation_t *operation, const psa_crypto_driver_pake_inputs_t *inputs)
psa_status_t mbedtls_psa_pake_input(mbedtls_psa_pake_operation_t *operation, psa_crypto_driver_pake_step_t step, const uint8_t *input, size_t input_length)
psa_status_t mbedtls_psa_asymmetric_encrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *salt, size_t salt_length, uint8_t *output, size_t output_size, size_t *output_length)
Encrypt a short message with a public key.
psa_status_t mbedtls_psa_asymmetric_decrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *salt, size_t salt_length, uint8_t *output, size_t output_size, size_t *output_length)
Decrypt a short message with a private key.
psa_status_t psa_init_all_se_drivers(void)
int psa_get_se_driver(psa_key_lifetime_t lifetime, const psa_drv_se_t **p_methods, psa_drv_se_context_t **p_drv_context)
void psa_unregister_all_se_drivers(void)
Definition crypto_struct.h:159
Definition crypto_struct.h:95
Definition crypto_struct.h:226
Driver context structure.
Definition crypto_se_driver.h:44
Definition crypto_se_driver.h:1278
Definition crypto_struct.h:70
Definition crypto_struct.h:295
Definition crypto_struct.h:131
Definition crypto_extra.h:1121
The context for PSA interruptible hash signing.
Definition crypto_struct.h:450
The context for PSA interruptible hash verification.
Definition crypto_struct.h:488
struct VirtioInputEvent * input
Definition virtiokbd.c:46